Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / MetaChildrenColumn.cs / 1305376 / MetaChildrenColumn.cs
using System.Security.Permissions; using System.Collections.Generic; using System.Diagnostics; using System.Web.DynamicData.ModelProviders; using System.Collections; using System.Web.Routing; namespace System.Web.DynamicData { ////// A special column representing 1-many relationships /// public class MetaChildrenColumn : MetaColumn, IMetaChildrenColumn { public MetaChildrenColumn(MetaTable table, ColumnProvider entityMember) : base(table, entityMember) { } ////// Perform initialization logic for this column /// internal protected override void Initialize() { base.Initialize(); AssociationProvider a = this.Provider.Association; ChildTable = Model.GetTable(a.ToTable.Name, Table.DataContextType); if (a.ToColumn != null) { ColumnInOtherTable = ChildTable.GetColumn(a.ToColumn.Name); } } ////// Returns whether this entity set column is in a Many To Many relationship /// public bool IsManyToMany { get { return Provider.Association != null && Provider.Association.Direction == AssociationDirection.ManyToMany; } } ////// The child table (e.g. Products in Categories<-Products) /// public MetaTable ChildTable { get; private set; } ////// A pointer to the MetaColumn in the other table /// public MetaColumn ColumnInOtherTable { get; private set; } ////// Override disabling sorting /// internal override string SortExpressionInternal { get { // children columns are not sortable return String.Empty; } } /*protected*/ internal override bool ScaffoldNoCache { get { // always display 1-many associations return true; } } ////// Shortcut for getting the path to the list action for all entities in the child table that have the given row as a parent. /// /// ///public string GetChildrenListPath(object row) { return GetChildrenPath(PageAction.List, row); } public string GetChildrenPath(string action, object row) { // If there is no row, we can't get a path if (row == null) return String.Empty; return ChildTable.GetActionPath(action, GetRouteValues(row)); } public string GetChildrenPath(string action, object row, string path) { // If there is no row, we can't get a path if (row == null) return String.Empty; if (String.IsNullOrEmpty(path)) { return GetChildrenPath(action, row); } // Build a query string param with our primary key RouteValueDictionary routeValues = GetRouteValues(row); // Add it to the path return QueryStringHandler.AddFiltersToPath(path, routeValues); } private RouteValueDictionary GetRouteValues(object row) { var routeValues = new RouteValueDictionary(); IList
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WmlCalendarAdapter.cs
- MetadataUtil.cs
- XmlCodeExporter.cs
- OraclePermissionAttribute.cs
- ObjectQueryProvider.cs
- PropertyDescriptorComparer.cs
- ProtocolsConfigurationHandler.cs
- ParserContext.cs
- ReadWriteSpinLock.cs
- Oci.cs
- TimeZoneNotFoundException.cs
- IndexOutOfRangeException.cs
- TypeConverterValueSerializer.cs
- BooleanExpr.cs
- DataGridItem.cs
- ToolStripControlHost.cs
- AnonymousIdentificationSection.cs
- mediapermission.cs
- NullableConverter.cs
- ShapingEngine.cs
- TimeManager.cs
- SynchronizedPool.cs
- DesignerValidatorAdapter.cs
- CustomLineCap.cs
- ViewManager.cs
- ReadOnlyTernaryTree.cs
- SecurityElement.cs
- XmlConvert.cs
- WebPartCloseVerb.cs
- XmlSchemaIdentityConstraint.cs
- Animatable.cs
- MemoryRecordBuffer.cs
- FormsAuthenticationUser.cs
- DataGridViewImageCell.cs
- XmlSchemaAttribute.cs
- MaskedTextBoxDesignerActionList.cs
- PersonalizationStateInfo.cs
- DataGridCommandEventArgs.cs
- UrlUtility.cs
- SafeHandles.cs
- Dynamic.cs
- RegexCaptureCollection.cs
- TraceSection.cs
- dbdatarecord.cs
- SingleAnimationBase.cs
- ErrorCodes.cs
- BoolExpression.cs
- FtpWebRequest.cs
- EDesignUtil.cs
- IpcManager.cs
- NumberFormatter.cs
- XmlILModule.cs
- X509Certificate2Collection.cs
- InvalidFilterCriteriaException.cs
- BamlReader.cs
- RemotingHelper.cs
- SortQuery.cs
- UiaCoreProviderApi.cs
- ClockGroup.cs
- GridViewCellAutomationPeer.cs
- ScriptControlManager.cs
- HtmlInputControl.cs
- Matrix.cs
- WhitespaceSignificantCollectionAttribute.cs
- EndOfStreamException.cs
- SmtpAuthenticationManager.cs
- WpfKnownMember.cs
- SynchronizationContext.cs
- IPHostEntry.cs
- ResourcesBuildProvider.cs
- SiteMembershipCondition.cs
- NullableDoubleSumAggregationOperator.cs
- DataGridViewLinkColumn.cs
- AdornerHitTestResult.cs
- FreezableOperations.cs
- SettingsSection.cs
- OleDbPropertySetGuid.cs
- SqlWriter.cs
- XmlDictionaryWriter.cs
- AddressingProperty.cs
- EntityWrapper.cs
- Axis.cs
- UrlPath.cs
- LineInfo.cs
- GroupBox.cs
- Rijndael.cs
- ValidatorCompatibilityHelper.cs
- LoginUtil.cs
- ItemType.cs
- SemaphoreFullException.cs
- XsltOutput.cs
- SafeEventLogReadHandle.cs
- ArgumentFixer.cs
- ScrollBarAutomationPeer.cs
- TypeNameParser.cs
- ApplicationId.cs
- EntityCommandExecutionException.cs
- ListViewHitTestInfo.cs
- GlobalEventManager.cs
- SerializationAttributes.cs