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
- TextUtf8RawTextWriter.cs
- EntityReference.cs
- GridItemPatternIdentifiers.cs
- ExternalCalls.cs
- DataControlLinkButton.cs
- QueryExpr.cs
- MouseEventArgs.cs
- _NTAuthentication.cs
- GenericRootAutomationPeer.cs
- TableSectionStyle.cs
- Double.cs
- DataSpaceManager.cs
- LightweightCodeGenerator.cs
- UpdateDelegates.Generated.cs
- ServicePoint.cs
- RelationshipManager.cs
- DataControlLinkButton.cs
- ILGenerator.cs
- ToolStripButton.cs
- ContainerSelectorBehavior.cs
- ChineseLunisolarCalendar.cs
- VisualStyleTypesAndProperties.cs
- XmlDataProvider.cs
- Utils.cs
- ErrorStyle.cs
- DataViewSetting.cs
- TextRange.cs
- DoubleLinkList.cs
- MergePropertyDescriptor.cs
- ADMembershipProvider.cs
- Char.cs
- HtmlMeta.cs
- DataGridColumnHeaderCollection.cs
- Label.cs
- SqlCommandSet.cs
- WebPartPersonalization.cs
- TrustExchangeException.cs
- DescriptionAttribute.cs
- XmlValueConverter.cs
- Marshal.cs
- QueryableDataSourceEditData.cs
- InitialServerConnectionReader.cs
- ToolboxItemFilterAttribute.cs
- ButtonBase.cs
- DrawingContextWalker.cs
- PrinterUnitConvert.cs
- ColorKeyFrameCollection.cs
- GacUtil.cs
- CheckBoxRenderer.cs
- GenericEnumerator.cs
- PropertyMetadata.cs
- XhtmlBasicCommandAdapter.cs
- RecipientInfo.cs
- HostedElements.cs
- Regex.cs
- OleDbParameter.cs
- NullableDoubleAverageAggregationOperator.cs
- DecoderFallback.cs
- BinaryReader.cs
- CfgParser.cs
- PeerNameResolver.cs
- RemotingServices.cs
- SharedStatics.cs
- ParserStack.cs
- ScriptingWebServicesSectionGroup.cs
- Nodes.cs
- listitem.cs
- XPathSingletonIterator.cs
- ValidateNames.cs
- _ScatterGatherBuffers.cs
- AudioSignalProblemOccurredEventArgs.cs
- TextTreeInsertElementUndoUnit.cs
- Collection.cs
- OverflowException.cs
- Mapping.cs
- regiisutil.cs
- LinqDataSourceInsertEventArgs.cs
- SqlNotificationEventArgs.cs
- InstanceView.cs
- FunctionNode.cs
- validationstate.cs
- WCFServiceClientProxyGenerator.cs
- ProcessThreadCollection.cs
- StylusPoint.cs
- COAUTHIDENTITY.cs
- BaseTemplateCodeDomTreeGenerator.cs
- NominalTypeEliminator.cs
- streamingZipPartStream.cs
- Int32RectConverter.cs
- WindowsRichEdit.cs
- TextOutput.cs
- ThreadStaticAttribute.cs
- XpsResourcePolicy.cs
- SoapFormatterSinks.cs
- SelectionWordBreaker.cs
- SmiEventSink_DeferedProcessing.cs
- AuthorizationRule.cs
- RuntimeTransactionHandle.cs
- ConfigurationLocation.cs
- Geometry3D.cs