Code:
/ 4.0 / 4.0 / 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
- WebSysDescriptionAttribute.cs
- WebPartDisplayModeEventArgs.cs
- CommandHelpers.cs
- XhtmlTextWriter.cs
- EntitySqlQueryCacheKey.cs
- DomNameTable.cs
- BufferedReadStream.cs
- BinaryReader.cs
- ExtendedPropertyDescriptor.cs
- SkewTransform.cs
- Misc.cs
- Size3DConverter.cs
- XmlElement.cs
- ConnectionConsumerAttribute.cs
- HostVisual.cs
- DBSchemaRow.cs
- XmlNamespaceManager.cs
- DebugView.cs
- ListBoxItemWrapperAutomationPeer.cs
- XNodeValidator.cs
- SetStoryboardSpeedRatio.cs
- DocumentScope.cs
- ActivityExecutionWorkItem.cs
- ContentPresenter.cs
- XmlParser.cs
- XslTransform.cs
- ArgIterator.cs
- SerializationInfo.cs
- IDReferencePropertyAttribute.cs
- ProcessHostConfigUtils.cs
- UnsafeNativeMethods.cs
- SiteIdentityPermission.cs
- HealthMonitoringSection.cs
- IncrementalHitTester.cs
- PortCache.cs
- MLangCodePageEncoding.cs
- ConditionChanges.cs
- SizeAnimationBase.cs
- SequenceNumber.cs
- Int32Animation.cs
- DateTimeStorage.cs
- SqlNamer.cs
- SchemaComplexType.cs
- PropertyOverridesDialog.cs
- GeneralTransform.cs
- KerberosSecurityTokenAuthenticator.cs
- EntityContainer.cs
- AssociationSetMetadata.cs
- XmlSubtreeReader.cs
- Suspend.cs
- NamespaceCollection.cs
- QilParameter.cs
- EnumType.cs
- Slider.cs
- OutputCacheProfile.cs
- coordinatorscratchpad.cs
- XmlSchemaAnnotation.cs
- FormViewInsertEventArgs.cs
- FixedStringLookup.cs
- Size3DValueSerializer.cs
- TableColumn.cs
- UriParserTemplates.cs
- ThreadPool.cs
- Validator.cs
- DataRowView.cs
- SectionXmlInfo.cs
- DbConnectionPoolGroup.cs
- DuplicateWaitObjectException.cs
- FilteredSchemaElementLookUpTable.cs
- RegexCapture.cs
- EditorResources.cs
- ClientSideQueueItem.cs
- PageRequestManager.cs
- FixedSOMContainer.cs
- DateTimeFormatInfo.cs
- DocumentSequence.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ALinqExpressionVisitor.cs
- NavigatorInput.cs
- WebPartCancelEventArgs.cs
- XmlTextWriter.cs
- ColorEditor.cs
- Transform3DGroup.cs
- XXXOnTypeBuilderInstantiation.cs
- InProcStateClientManager.cs
- HwndSource.cs
- CacheDependency.cs
- LazyTextWriterCreator.cs
- RadioButtonBaseAdapter.cs
- IncrementalReadDecoders.cs
- ConstructorBuilder.cs
- TrackingProfileDeserializationException.cs
- SqlDataReaderSmi.cs
- NegationPusher.cs
- OleStrCAMarshaler.cs
- ChineseLunisolarCalendar.cs
- Gdiplus.cs
- SignedInfo.cs
- PageParserFilter.cs
- WebPartMovingEventArgs.cs