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
- SerializationBinder.cs
- Adorner.cs
- LOSFormatter.cs
- PkcsUtils.cs
- DBAsyncResult.cs
- GridItem.cs
- PointLight.cs
- RoamingStoreFileUtility.cs
- ITreeGenerator.cs
- NativeMethods.cs
- SmiEventStream.cs
- ViewManager.cs
- CodeDefaultValueExpression.cs
- Mouse.cs
- ManagementOperationWatcher.cs
- URIFormatException.cs
- ZipIOLocalFileBlock.cs
- BuildProviderCollection.cs
- CodeSubDirectoriesCollection.cs
- SpoolingTask.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- MatrixTransform.cs
- Vector3DKeyFrameCollection.cs
- CrossAppDomainChannel.cs
- RangeBaseAutomationPeer.cs
- SecureUICommand.cs
- XslVisitor.cs
- StringHandle.cs
- ExecutionPropertyManager.cs
- ScriptModule.cs
- DataTableCollection.cs
- PropertyDescriptorCollection.cs
- ListenerHandler.cs
- MaskedTextProvider.cs
- IPHostEntry.cs
- SqlBulkCopyColumnMappingCollection.cs
- XmlUtf8RawTextWriter.cs
- SecurityManager.cs
- DataServiceRequest.cs
- Light.cs
- FunctionParameter.cs
- OleDbDataReader.cs
- ConditionChanges.cs
- ConfigurationLocation.cs
- BitmapCodecInfoInternal.cs
- SelectionRange.cs
- WebProxyScriptElement.cs
- SiteIdentityPermission.cs
- GeometryModel3D.cs
- TableRowGroup.cs
- PackagePartCollection.cs
- cookieexception.cs
- ToolStripPanelCell.cs
- LabelEditEvent.cs
- GridViewEditEventArgs.cs
- ColorConverter.cs
- NotImplementedException.cs
- Random.cs
- XmlDataLoader.cs
- Schema.cs
- RuntimeConfigLKG.cs
- XslCompiledTransform.cs
- DataGridViewComboBoxColumn.cs
- TypeToken.cs
- CatalogPartChrome.cs
- ObjectAssociationEndMapping.cs
- SerializerProvider.cs
- DataServiceConfiguration.cs
- MatrixTransform.cs
- SpecialFolderEnumConverter.cs
- SqlServices.cs
- ClientConfigPaths.cs
- ThreadAttributes.cs
- SubclassTypeValidatorAttribute.cs
- SafeThreadHandle.cs
- Psha1DerivedKeyGeneratorHelper.cs
- ParallelRangeManager.cs
- LongValidatorAttribute.cs
- ObjectDataSourceStatusEventArgs.cs
- BypassElementCollection.cs
- ChtmlLinkAdapter.cs
- FontStyle.cs
- PropertyCondition.cs
- SingleAnimationUsingKeyFrames.cs
- XmlSchemaSearchPattern.cs
- TabRenderer.cs
- ClockController.cs
- _CookieModule.cs
- SingleSelectRootGridEntry.cs
- PackageRelationshipSelector.cs
- Baml2006SchemaContext.cs
- TypeResolvingOptions.cs
- BufferModesCollection.cs
- StoreConnection.cs
- TextTreeUndoUnit.cs
- DataChangedEventManager.cs
- ParameterCollectionEditorForm.cs
- NotificationContext.cs
- RemoteWebConfigurationHostServer.cs
- HwndMouseInputProvider.cs