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
- TimeoutStream.cs
- TextDocumentView.cs
- BamlTreeUpdater.cs
- WebPartMovingEventArgs.cs
- DateTimeOffsetConverter.cs
- UInt32Converter.cs
- PrintDialog.cs
- Viewport2DVisual3D.cs
- OdbcConnectionHandle.cs
- SafeUserTokenHandle.cs
- TextAdaptor.cs
- SQLUtility.cs
- ExtensionFile.cs
- Property.cs
- ConfigurationManagerInternalFactory.cs
- Accessible.cs
- BufferBuilder.cs
- PropertyValueChangedEvent.cs
- DatePickerAutomationPeer.cs
- WebSysDisplayNameAttribute.cs
- CachedCompositeFamily.cs
- UnsafeNetInfoNativeMethods.cs
- XPathNodeInfoAtom.cs
- IndexerNameAttribute.cs
- XmlSortKey.cs
- complextypematerializer.cs
- SchemaSetCompiler.cs
- KnownColorTable.cs
- IxmlLineInfo.cs
- RegularExpressionValidator.cs
- MediaTimeline.cs
- RC2CryptoServiceProvider.cs
- ApplicationGesture.cs
- coordinator.cs
- IsolatedStorageFilePermission.cs
- ConfigXmlComment.cs
- BasicKeyConstraint.cs
- SplitContainer.cs
- DoubleAnimationUsingPath.cs
- ClaimComparer.cs
- ConnectionPoint.cs
- Certificate.cs
- DriveNotFoundException.cs
- StringUtil.cs
- TrustLevelCollection.cs
- SpnegoTokenAuthenticator.cs
- RegistryExceptionHelper.cs
- SqlMethodCallConverter.cs
- KeyGesture.cs
- BatchWriter.cs
- ConditionCollection.cs
- SqlFactory.cs
- NotifyInputEventArgs.cs
- DSASignatureFormatter.cs
- DragAssistanceManager.cs
- _PooledStream.cs
- XmlDomTextWriter.cs
- MD5CryptoServiceProvider.cs
- Thickness.cs
- DayRenderEvent.cs
- SimpleFileLog.cs
- EntityCommand.cs
- PreservationFileReader.cs
- SystemFonts.cs
- EventLogEntryCollection.cs
- PersonalizationDictionary.cs
- AnnotationAdorner.cs
- SequentialWorkflowHeaderFooter.cs
- PartitionResolver.cs
- ControlEvent.cs
- ColorAnimationUsingKeyFrames.cs
- MetadataCollection.cs
- FormsIdentity.cs
- CounterCreationData.cs
- LocatorPartList.cs
- SequentialOutput.cs
- DefaultTypeArgumentAttribute.cs
- TransactedBatchingBehavior.cs
- SeekableReadStream.cs
- MobileCategoryAttribute.cs
- MouseEventArgs.cs
- GacUtil.cs
- DataGridViewCellValidatingEventArgs.cs
- UnSafeCharBuffer.cs
- DataGridColumn.cs
- RectangleGeometry.cs
- ListDictionary.cs
- WmlPhoneCallAdapter.cs
- COM2Enum.cs
- ObjectAnimationBase.cs
- VariantWrapper.cs
- CommandLineParser.cs
- RecipientInfo.cs
- ContourSegment.cs
- CultureSpecificCharacterBufferRange.cs
- ConfigurationValidatorBase.cs
- HierarchicalDataBoundControlAdapter.cs
- MessageAction.cs
- TagMapInfo.cs
- Line.cs