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
- XhtmlBasicPhoneCallAdapter.cs
- TextFormatterContext.cs
- ColorDialog.cs
- printdlgexmarshaler.cs
- ResolveNameEventArgs.cs
- CodeCommentStatementCollection.cs
- XmlSchemaCollection.cs
- DllNotFoundException.cs
- CommandField.cs
- FilterQuery.cs
- Point3DCollectionConverter.cs
- BrushValueSerializer.cs
- TextTreeInsertUndoUnit.cs
- AVElementHelper.cs
- XPathItem.cs
- _ShellExpression.cs
- CultureSpecificStringDictionary.cs
- EnumCodeDomSerializer.cs
- WebPartUserCapability.cs
- GroupBox.cs
- ParseHttpDate.cs
- _Semaphore.cs
- DesignerTransaction.cs
- ExpressionBuilder.cs
- Math.cs
- ClaimTypeElementCollection.cs
- GeometryDrawing.cs
- TemplateControlParser.cs
- WebBrowserDocumentCompletedEventHandler.cs
- TimelineClockCollection.cs
- BasicHttpMessageCredentialType.cs
- ServiceMetadataContractBehavior.cs
- InputLanguageCollection.cs
- WebScriptEnablingBehavior.cs
- FrameSecurityDescriptor.cs
- Site.cs
- DecoderFallback.cs
- WebBrowserNavigatedEventHandler.cs
- CopyNamespacesAction.cs
- UrlPath.cs
- SizeIndependentAnimationStorage.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- RequestCachePolicy.cs
- ValueOfAction.cs
- BaseParagraph.cs
- RowUpdatingEventArgs.cs
- XmlCompatibilityReader.cs
- DriveInfo.cs
- TabControlAutomationPeer.cs
- MailDefinition.cs
- ConfigurationCollectionAttribute.cs
- ProfileElement.cs
- JsonFormatGeneratorStatics.cs
- TypeDescriptionProviderAttribute.cs
- ServiceCredentials.cs
- TypeSystemProvider.cs
- IERequestCache.cs
- SkinBuilder.cs
- figurelength.cs
- WindowsTooltip.cs
- CustomLineCap.cs
- ResourceDictionary.cs
- TextAction.cs
- Convert.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- ProxyGenerationError.cs
- FixedSOMSemanticBox.cs
- HtmlInputButton.cs
- FileClassifier.cs
- MessagingActivityHelper.cs
- ProtocolsConfiguration.cs
- UnaryNode.cs
- TabletDeviceInfo.cs
- SystemIPGlobalStatistics.cs
- HMACMD5.cs
- TableHeaderCell.cs
- LinkLabelLinkClickedEvent.cs
- TraceInternal.cs
- SolidColorBrush.cs
- DateTimeValueSerializer.cs
- CheckBox.cs
- WebConfigurationFileMap.cs
- TagNameToTypeMapper.cs
- TypedTableBase.cs
- CodeTypeReferenceCollection.cs
- DataGridViewToolTip.cs
- XmlSchemaSimpleTypeRestriction.cs
- XmlRawWriter.cs
- CommonDialog.cs
- CacheForPrimitiveTypes.cs
- SplitterEvent.cs
- FixedStringLookup.cs
- DataKey.cs
- XamlToRtfWriter.cs
- CriticalFinalizerObject.cs
- SafeRightsManagementQueryHandle.cs
- ElementFactory.cs
- _DisconnectOverlappedAsyncResult.cs
- FileFormatException.cs
- ButtonBaseAdapter.cs