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
- GB18030Encoding.cs
- CFStream.cs
- SelectionRange.cs
- BindingBase.cs
- MethodSet.cs
- FlowNode.cs
- XsdCachingReader.cs
- TypeInitializationException.cs
- BCLDebug.cs
- ThicknessAnimationBase.cs
- AssemblyResourceLoader.cs
- DateRangeEvent.cs
- ErrorCodes.cs
- ToolStripManager.cs
- InlineCollection.cs
- ObjectQuery_EntitySqlExtensions.cs
- StreamGeometry.cs
- FocusWithinProperty.cs
- OpCodes.cs
- TextBoxLine.cs
- UIElementParagraph.cs
- InternalsVisibleToAttribute.cs
- DataGridViewSelectedRowCollection.cs
- TransactionFlowBindingElementImporter.cs
- ComplexBindingPropertiesAttribute.cs
- HttpProfileGroupBase.cs
- RectConverter.cs
- DateTimeFormatInfo.cs
- XmlSiteMapProvider.cs
- LinkLabel.cs
- MailWebEventProvider.cs
- WindowsSlider.cs
- CodeThrowExceptionStatement.cs
- HttpCapabilitiesSectionHandler.cs
- ColorMatrix.cs
- XamlSerializationHelper.cs
- WpfKnownMemberInvoker.cs
- OciEnlistContext.cs
- Perspective.cs
- UntrustedRecipientException.cs
- HtmlWindow.cs
- VisualBrush.cs
- WeakReferenceList.cs
- CustomCategoryAttribute.cs
- EditorServiceContext.cs
- PointConverter.cs
- Message.cs
- OdbcConnectionFactory.cs
- StatusBarPanelClickEvent.cs
- WebProxyScriptElement.cs
- NullableDecimalMinMaxAggregationOperator.cs
- ThreadPool.cs
- NullableConverter.cs
- UserControl.cs
- SimpleTextLine.cs
- WinEventWrap.cs
- XmlSignificantWhitespace.cs
- SmtpFailedRecipientException.cs
- SqlDataSourceConfigureFilterForm.cs
- XsdDateTime.cs
- UInt32Converter.cs
- ThicknessAnimationUsingKeyFrames.cs
- CodeExpressionCollection.cs
- Panel.cs
- StorageScalarPropertyMapping.cs
- QuadraticBezierSegment.cs
- QuaternionValueSerializer.cs
- EmptyEnumerator.cs
- MultipartIdentifier.cs
- Transform.cs
- Collection.cs
- Mutex.cs
- PriorityBindingExpression.cs
- FontStretch.cs
- XslTransform.cs
- BasePattern.cs
- IndexingContentUnit.cs
- ChannelSinkStacks.cs
- StateMachineDesignerPaint.cs
- GrammarBuilderWildcard.cs
- ServiceHttpModule.cs
- ObjectStateEntryBaseUpdatableDataRecord.cs
- dtdvalidator.cs
- XamlNamespaceHelper.cs
- HwndMouseInputProvider.cs
- TableCellAutomationPeer.cs
- QueryOptionExpression.cs
- ExpressionParser.cs
- MethodBuilderInstantiation.cs
- path.cs
- SecurityContextCookieSerializer.cs
- DbConnectionStringCommon.cs
- UserInitiatedNavigationPermission.cs
- MimePart.cs
- ContentWrapperAttribute.cs
- InstancePersistenceCommand.cs
- Rect.cs
- ClientConfigPaths.cs
- TextUtf8RawTextWriter.cs
- TheQuery.cs