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
- DataViewManager.cs
- ContainerParaClient.cs
- StrokeCollection.cs
- ValidatedControlConverter.cs
- LocalFileSettingsProvider.cs
- BooleanToVisibilityConverter.cs
- CollectionBuilder.cs
- BinHexEncoding.cs
- DodSequenceMerge.cs
- DelimitedListTraceListener.cs
- BaseResourcesBuildProvider.cs
- TrustManagerMoreInformation.cs
- ImageFormatConverter.cs
- AttachedPropertyBrowsableForTypeAttribute.cs
- PropertyIdentifier.cs
- QualifierSet.cs
- CriticalExceptions.cs
- EntityDesignerDataSourceView.cs
- WebServiceErrorEvent.cs
- QilDataSource.cs
- UnhandledExceptionEventArgs.cs
- CallbackException.cs
- TextAdaptor.cs
- CodeIdentifiers.cs
- DataGridState.cs
- DbDataReader.cs
- QilParameter.cs
- BitmapFrame.cs
- MessageBox.cs
- EntityModelSchemaGenerator.cs
- SecurityTokenValidationException.cs
- DesignerSerializerAttribute.cs
- TypeDescriptionProviderAttribute.cs
- DictionaryBase.cs
- GcHandle.cs
- Transform.cs
- LockedHandleGlyph.cs
- PenContexts.cs
- RuntimeArgumentHandle.cs
- SystemParameters.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- DropShadowBitmapEffect.cs
- Pair.cs
- ResourcePart.cs
- XhtmlTextWriter.cs
- RadialGradientBrush.cs
- __Filters.cs
- CompoundFileDeflateTransform.cs
- CodePageUtils.cs
- _UncName.cs
- SemaphoreFullException.cs
- IdleTimeoutMonitor.cs
- srgsitem.cs
- AppendHelper.cs
- CultureSpecificStringDictionary.cs
- Trace.cs
- RemoteWebConfigurationHostServer.cs
- XDeferredAxisSource.cs
- EdmMember.cs
- ScriptComponentDescriptor.cs
- Single.cs
- EntityDataSourceState.cs
- CfgSemanticTag.cs
- DiagnosticTrace.cs
- XsdValidatingReader.cs
- ColumnResizeAdorner.cs
- RotateTransform3D.cs
- SQLSingle.cs
- WMIGenerator.cs
- SchemaObjectWriter.cs
- FontSource.cs
- WindowsListView.cs
- DataContract.cs
- ProtocolViolationException.cs
- CachedFontFace.cs
- _CacheStreams.cs
- ObjectListShowCommandsEventArgs.cs
- SafeNativeHandle.cs
- XmlSchemaProviderAttribute.cs
- File.cs
- RootNamespaceAttribute.cs
- SQLGuidStorage.cs
- LineGeometry.cs
- CodeDirectoryCompiler.cs
- ProtocolInformationReader.cs
- DataRowCollection.cs
- BaseTreeIterator.cs
- CombinedTcpChannel.cs
- TakeQueryOptionExpression.cs
- DataGridItemEventArgs.cs
- ScrollData.cs
- SecurityState.cs
- AttributeProviderAttribute.cs
- FrameworkRichTextComposition.cs
- ImpersonationContext.cs
- ParseNumbers.cs
- ClusterUtils.cs
- ControlUtil.cs
- BaseParaClient.cs
- RuleElement.cs