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
- CodeTypeDeclaration.cs
- WebPartsPersonalization.cs
- VisualTreeUtils.cs
- AttributeSetAction.cs
- SingleAnimationBase.cs
- HttpCookiesSection.cs
- DataGridViewCellEventArgs.cs
- NullableConverter.cs
- TableLayoutCellPaintEventArgs.cs
- EntityDataSourceStatementEditor.cs
- SqlUserDefinedAggregateAttribute.cs
- _NegoState.cs
- RefType.cs
- ConfigurationSection.cs
- PrintControllerWithStatusDialog.cs
- SmiContext.cs
- CodeCompiler.cs
- TextEffectCollection.cs
- _AutoWebProxyScriptHelper.cs
- CodeDelegateCreateExpression.cs
- ContextMenuStrip.cs
- TrackingMemoryStream.cs
- IdSpace.cs
- HiddenFieldDesigner.cs
- PartitionResolver.cs
- Rotation3D.cs
- sqlinternaltransaction.cs
- EventHandlerList.cs
- ToolStripContainer.cs
- RuntimeWrappedException.cs
- NameValueConfigurationElement.cs
- AuthenticationServiceManager.cs
- ContentDefinition.cs
- PrintEvent.cs
- QilFactory.cs
- SharedPersonalizationStateInfo.cs
- EdmComplexTypeAttribute.cs
- SynchronousChannel.cs
- controlskin.cs
- ResourceDisplayNameAttribute.cs
- GPStream.cs
- StatusBar.cs
- PhysicalFontFamily.cs
- MessageSecurityOverHttpElement.cs
- RequestBringIntoViewEventArgs.cs
- DataTableClearEvent.cs
- AsnEncodedData.cs
- TranslateTransform3D.cs
- CookieHandler.cs
- HMACSHA384.cs
- LocatorManager.cs
- ListDataBindEventArgs.cs
- DBSchemaTable.cs
- SQLResource.cs
- AttachmentCollection.cs
- XmlElementAttributes.cs
- StartFileNameEditor.cs
- ItemList.cs
- UInt32Converter.cs
- CheckBoxField.cs
- TextEvent.cs
- DateTimeConverter2.cs
- COM2Enum.cs
- AttachedPropertyDescriptor.cs
- NegotiationTokenAuthenticatorStateCache.cs
- ScriptReferenceBase.cs
- SystemFonts.cs
- ImpersonationContext.cs
- ExpressionBuilder.cs
- MapPathBasedVirtualPathProvider.cs
- SelectionRangeConverter.cs
- ApplicationServiceHelper.cs
- DelimitedListTraceListener.cs
- ColumnMapCopier.cs
- TypeConstant.cs
- SizeAnimationClockResource.cs
- MenuItemBindingCollection.cs
- ItemCollection.cs
- CompilationPass2Task.cs
- ByteAnimation.cs
- OutputWindow.cs
- Compensation.cs
- LinearGradientBrush.cs
- SymLanguageVendor.cs
- DbParameterCollection.cs
- BaseContextMenu.cs
- PtsCache.cs
- CancelEventArgs.cs
- HideDisabledControlAdapter.cs
- AssertSection.cs
- XamlWriter.cs
- CommandLineParser.cs
- AttributeData.cs
- RelationshipConverter.cs
- SqlParameterCollection.cs
- FlowLayoutPanelDesigner.cs
- RsaSecurityKey.cs
- RelativeSource.cs
- Html32TextWriter.cs
- TemplateControlCodeDomTreeGenerator.cs