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
- XmlSchemaSet.cs
- ArrayWithOffset.cs
- XmlValidatingReader.cs
- WebRequestModulesSection.cs
- ImportDesigner.xaml.cs
- ProcessProtocolHandler.cs
- SecurityCriticalDataForSet.cs
- XmlAttributeProperties.cs
- UnsafeCollabNativeMethods.cs
- NameTable.cs
- UDPClient.cs
- SyndicationLink.cs
- PKCS1MaskGenerationMethod.cs
- ThreadInterruptedException.cs
- EdmRelationshipNavigationPropertyAttribute.cs
- PasswordPropertyTextAttribute.cs
- TypeDependencyAttribute.cs
- AstNode.cs
- dataobject.cs
- TraceHandler.cs
- UnionCodeGroup.cs
- LocatorManager.cs
- CodeExpressionRuleDeclaration.cs
- XamlClipboardData.cs
- WindowsTooltip.cs
- EditorPartChrome.cs
- DataGridViewImageCell.cs
- Pair.cs
- ImportFileRequest.cs
- QilLiteral.cs
- FixedTextPointer.cs
- ColorConverter.cs
- WrappedIUnknown.cs
- InvalidDataException.cs
- PropagatorResult.cs
- SuppressMessageAttribute.cs
- CodeStatementCollection.cs
- DataService.cs
- PermissionRequestEvidence.cs
- BooleanToVisibilityConverter.cs
- XmlSchemaAnyAttribute.cs
- OletxTransactionHeader.cs
- Currency.cs
- PeerPresenceInfo.cs
- Double.cs
- WebPartActionVerb.cs
- MsmqIntegrationReceiveParameters.cs
- XsdDataContractImporter.cs
- TextClipboardData.cs
- FormsAuthenticationUserCollection.cs
- ResourceProviderFactory.cs
- HeaderedItemsControl.cs
- SelectedGridItemChangedEvent.cs
- __Filters.cs
- ToggleButton.cs
- ValidationRule.cs
- Message.cs
- PrivilegeNotHeldException.cs
- ServiceChannelManager.cs
- CustomCredentialPolicy.cs
- CharAnimationBase.cs
- XmlTextEncoder.cs
- Separator.cs
- EnvironmentPermission.cs
- SerializationInfo.cs
- CryptoHelper.cs
- XPathQueryGenerator.cs
- JoinElimination.cs
- CodeAccessPermission.cs
- CachedPathData.cs
- XmlEntityReference.cs
- DbConnectionInternal.cs
- AcceleratedTokenProvider.cs
- ResetableIterator.cs
- FieldToken.cs
- Model3D.cs
- Function.cs
- StaticExtension.cs
- ListDictionary.cs
- ChineseLunisolarCalendar.cs
- ResourceWriter.cs
- CodeConditionStatement.cs
- MasterPageParser.cs
- PolyBezierSegment.cs
- Table.cs
- ListItemParagraph.cs
- BeginEvent.cs
- OneWayChannelListener.cs
- SslStream.cs
- SuppressMessageAttribute.cs
- AppendHelper.cs
- UserPersonalizationStateInfo.cs
- ReadOnlyObservableCollection.cs
- CounterSetInstance.cs
- Enum.cs
- CommentGlyph.cs
- SessionViewState.cs
- ResourceWriter.cs
- RouteItem.cs
- VerticalAlignConverter.cs