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
- XmlWrappingReader.cs
- SqlInternalConnectionTds.cs
- SaveFileDialog.cs
- EdmSchemaAttribute.cs
- JpegBitmapDecoder.cs
- WorkflowRuntimeSection.cs
- UpDownEvent.cs
- Calendar.cs
- DesignTimeParseData.cs
- SaveFileDialog.cs
- DebugView.cs
- XmlConvert.cs
- XmlCharCheckingReader.cs
- SmtpClient.cs
- AppDomainAttributes.cs
- AxHostDesigner.cs
- OneToOneMappingSerializer.cs
- CloseCollectionAsyncResult.cs
- xmlglyphRunInfo.cs
- ThreadStartException.cs
- RequiredFieldValidator.cs
- DecimalFormatter.cs
- CultureTable.cs
- InvalidDataException.cs
- DbSourceParameterCollection.cs
- EntityKeyElement.cs
- SubMenuStyleCollection.cs
- WindowHideOrCloseTracker.cs
- GlobalEventManager.cs
- IsolatedStoragePermission.cs
- EmptyElement.cs
- DashStyle.cs
- FileSystemInfo.cs
- XmlAnyElementAttributes.cs
- StrokeRenderer.cs
- RsaKeyIdentifierClause.cs
- TypedOperationInfo.cs
- ConsoleTraceListener.cs
- BasePattern.cs
- CodeCatchClauseCollection.cs
- AlignmentYValidation.cs
- WebPartHelpVerb.cs
- FamilyCollection.cs
- LayoutEditorPart.cs
- ColorMap.cs
- ControlCollection.cs
- SerializationAttributes.cs
- OverflowException.cs
- XmlAttributeProperties.cs
- WebPartDisplayMode.cs
- TypeUtil.cs
- PublisherMembershipCondition.cs
- MultiPropertyDescriptorGridEntry.cs
- QilXmlWriter.cs
- EventToken.cs
- ProfileGroupSettings.cs
- Soap.cs
- LocalBuilder.cs
- Utility.cs
- DrawingGroupDrawingContext.cs
- RIPEMD160Managed.cs
- ModuleElement.cs
- RawKeyboardInputReport.cs
- QueryPageSettingsEventArgs.cs
- Add.cs
- HierarchicalDataSourceDesigner.cs
- BindingContext.cs
- EmptyTextWriter.cs
- ObjectManager.cs
- AvTraceDetails.cs
- DBCommand.cs
- ProvidePropertyAttribute.cs
- PLINQETWProvider.cs
- RuleSettings.cs
- AuthenticationException.cs
- BaseAppDomainProtocolHandler.cs
- TabPageDesigner.cs
- MethodBuilder.cs
- Int16AnimationBase.cs
- BreakRecordTable.cs
- TaiwanLunisolarCalendar.cs
- Attributes.cs
- Errors.cs
- _WinHttpWebProxyDataBuilder.cs
- SingleTagSectionHandler.cs
- JavaScriptString.cs
- PrimitiveXmlSerializers.cs
- HtmlInputText.cs
- figurelengthconverter.cs
- LineSegment.cs
- NamedElement.cs
- InstanceData.cs
- RtType.cs
- HostnameComparisonMode.cs
- LineBreak.cs
- BigInt.cs
- BitmapEffectInputData.cs
- BrowserTree.cs
- SourceItem.cs
- CopyAttributesAction.cs