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
- BitmapEffectGroup.cs
- InternalMappingException.cs
- ConfigXmlCDataSection.cs
- TableItemProviderWrapper.cs
- EventToken.cs
- BrushValueSerializer.cs
- ViewUtilities.cs
- ClosureBinding.cs
- BaseTemplateParser.cs
- IItemProperties.cs
- LinkedList.cs
- IntSecurity.cs
- EtwTrackingParticipant.cs
- AdapterDictionary.cs
- MimeFormReflector.cs
- Screen.cs
- ThreadInterruptedException.cs
- ConfigXmlCDataSection.cs
- XmlSchemaException.cs
- ValueQuery.cs
- Win32.cs
- ClientSettings.cs
- FixedStringLookup.cs
- DbDataRecord.cs
- DiscoveryMessageProperty.cs
- Adorner.cs
- Profiler.cs
- WebBrowserContainer.cs
- ProfilePropertyNameValidator.cs
- Predicate.cs
- MULTI_QI.cs
- UseAttributeSetsAction.cs
- ImageListUtils.cs
- ToolStripMenuItemCodeDomSerializer.cs
- CompletedAsyncResult.cs
- GPStream.cs
- ShaderRenderModeValidation.cs
- OleAutBinder.cs
- BindingNavigator.cs
- AspNetHostingPermission.cs
- TypeToStringValueConverter.cs
- VirtualDirectoryMappingCollection.cs
- EntityProxyFactory.cs
- LinearGradientBrush.cs
- HorizontalAlignConverter.cs
- Mouse.cs
- XmlLanguage.cs
- ReflectTypeDescriptionProvider.cs
- AutoCompleteStringCollection.cs
- UInt64Converter.cs
- AttachmentService.cs
- SmtpException.cs
- CompositeActivityDesigner.cs
- ReflectionPermission.cs
- WSAddressing10ProblemHeaderQNameFault.cs
- ConfigurationSectionGroup.cs
- Maps.cs
- TextBox.cs
- SchemaImporterExtension.cs
- HtmlLink.cs
- BlurEffect.cs
- VideoDrawing.cs
- DataIdProcessor.cs
- ClientTargetCollection.cs
- dsa.cs
- LastQueryOperator.cs
- __Error.cs
- FormatStringEditor.cs
- RegexNode.cs
- ToolStripControlHost.cs
- EventMap.cs
- ETagAttribute.cs
- MobileContainerDesigner.cs
- ILGenerator.cs
- StorageModelBuildProvider.cs
- DynamicDataResources.Designer.cs
- InputScopeAttribute.cs
- Psha1DerivedKeyGenerator.cs
- EditCommandColumn.cs
- MSAAEventDispatcher.cs
- DesignerCapabilities.cs
- ServiceNameElement.cs
- Socket.cs
- ComplexBindingPropertiesAttribute.cs
- IisTraceWebEventProvider.cs
- WebResponse.cs
- ExpressionPrinter.cs
- CodeMethodMap.cs
- MdImport.cs
- XmlReader.cs
- CodeIterationStatement.cs
- ToolboxItemAttribute.cs
- TextPointer.cs
- EpmSourcePathSegment.cs
- NameValueSectionHandler.cs
- UnsafeNativeMethods.cs
- WindowsStartMenu.cs
- DesignerCatalogPartChrome.cs
- ReceiveDesigner.xaml.cs
- ContainerUtilities.cs