Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / DefaultAutoFieldGenerator.cs / 1305376 / DefaultAutoFieldGenerator.cs
namespace System.Web.DynamicData { using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Web.DynamicData.Util; using System.Web.UI; using System.Web.UI.WebControls; public class DefaultAutoFieldGenerator : IAutoFieldGenerator { private IMetaTable _metaTable; public DefaultAutoFieldGenerator(MetaTable table) : this((IMetaTable)table) { } internal DefaultAutoFieldGenerator(IMetaTable table) { if (table == null) { throw new ArgumentNullException("table"); } _metaTable = table; } public ICollection GenerateFields(Control control) { DataBoundControlMode mode = GetMode(control); ContainerType containerType = GetControlContainerType(control); // Auto-generate fields from metadata. Listfields = new List (); foreach (MetaColumn column in _metaTable.GetScaffoldColumns(mode, containerType)) { fields.Add(CreateField(column, containerType, mode)); } return fields; } protected virtual DynamicField CreateField(MetaColumn column, ContainerType containerType, DataBoundControlMode mode) { string headerText = (containerType == ContainerType.List ? column.ShortDisplayName : column.DisplayName); var field = new DynamicField() { DataField = column.Name, HeaderText = headerText }; // Turn wrapping off by default so that error messages don't show up on the next line. field.ItemStyle.Wrap = false; return field; } internal static ContainerType GetControlContainerType(Control control) { #if !ORYX_VNEXT if (control is IDataBoundListControl || control is Repeater) { return ContainerType.List; } else if (control is IDataBoundItemControl) { return ContainerType.Item; } #else if (control is GridView || control is ListView || control is Repeater) { return ContainerType.List; } if (control is FormView || control is DetailsView) { return ContainerType.Item; } #endif return ContainerType.List; } internal static DataBoundControlMode GetMode(Control control) { #if ORYX_VNEXT return DataControlHelper.GetControlAdapter(control).Mode; #else // Only item controls have distinct modes IDataBoundItemControl itemControl = control as IDataBoundItemControl; if (itemControl != null && GetControlContainerType(control) != ContainerType.List) { return itemControl.Mode; } return DataBoundControlMode.ReadOnly; #endif } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Web.DynamicData { using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.Web.DynamicData.Util; using System.Web.UI; using System.Web.UI.WebControls; public class DefaultAutoFieldGenerator : IAutoFieldGenerator { private IMetaTable _metaTable; public DefaultAutoFieldGenerator(MetaTable table) : this((IMetaTable)table) { } internal DefaultAutoFieldGenerator(IMetaTable table) { if (table == null) { throw new ArgumentNullException("table"); } _metaTable = table; } public ICollection GenerateFields(Control control) { DataBoundControlMode mode = GetMode(control); ContainerType containerType = GetControlContainerType(control); // Auto-generate fields from metadata. List fields = new List (); foreach (MetaColumn column in _metaTable.GetScaffoldColumns(mode, containerType)) { fields.Add(CreateField(column, containerType, mode)); } return fields; } protected virtual DynamicField CreateField(MetaColumn column, ContainerType containerType, DataBoundControlMode mode) { string headerText = (containerType == ContainerType.List ? column.ShortDisplayName : column.DisplayName); var field = new DynamicField() { DataField = column.Name, HeaderText = headerText }; // Turn wrapping off by default so that error messages don't show up on the next line. field.ItemStyle.Wrap = false; return field; } internal static ContainerType GetControlContainerType(Control control) { #if !ORYX_VNEXT if (control is IDataBoundListControl || control is Repeater) { return ContainerType.List; } else if (control is IDataBoundItemControl) { return ContainerType.Item; } #else if (control is GridView || control is ListView || control is Repeater) { return ContainerType.List; } if (control is FormView || control is DetailsView) { return ContainerType.Item; } #endif return ContainerType.List; } internal static DataBoundControlMode GetMode(Control control) { #if ORYX_VNEXT return DataControlHelper.GetControlAdapter(control).Mode; #else // Only item controls have distinct modes IDataBoundItemControl itemControl = control as IDataBoundItemControl; if (itemControl != null && GetControlContainerType(control) != ContainerType.List) { return itemControl.Mode; } return DataBoundControlMode.ReadOnly; #endif } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- BaseDataBoundControl.cs
- EventItfInfo.cs
- Stroke2.cs
- TraceContext.cs
- MasterPageParser.cs
- SymbolType.cs
- ProviderCollection.cs
- ParallelEnumerableWrapper.cs
- ColumnHeader.cs
- ThrowHelper.cs
- InheritablePropertyChangeInfo.cs
- BufferedWebEventProvider.cs
- FtpWebRequest.cs
- DbSetClause.cs
- TableLayoutSettingsTypeConverter.cs
- FakeModelPropertyImpl.cs
- XhtmlTextWriter.cs
- ConversionValidationRule.cs
- DbProviderManifest.cs
- XpsDocumentEvent.cs
- ConvertEvent.cs
- PrintDialog.cs
- PersonalizableAttribute.cs
- PixelShader.cs
- ExpressionNormalizer.cs
- WorkflowServiceAttributes.cs
- FormViewCommandEventArgs.cs
- ArgumentReference.cs
- TranslateTransform3D.cs
- TerminateDesigner.cs
- SoapFormatterSinks.cs
- MsmqNonTransactedPoisonHandler.cs
- FileSystemEventArgs.cs
- HostingPreferredMapPath.cs
- Propagator.Evaluator.cs
- Codec.cs
- ValueUnavailableException.cs
- EdmSchemaError.cs
- TreeView.cs
- MinMaxParagraphWidth.cs
- CharUnicodeInfo.cs
- dbdatarecord.cs
- _CookieModule.cs
- EncoderFallback.cs
- ListViewGroupItemCollection.cs
- UnmanagedMarshal.cs
- PrinterResolution.cs
- OdbcEnvironmentHandle.cs
- TextServicesCompartmentContext.cs
- KeyTime.cs
- XmlAttributeProperties.cs
- ColumnClickEvent.cs
- OledbConnectionStringbuilder.cs
- RectIndependentAnimationStorage.cs
- StorageSetMapping.cs
- UrlMappingsSection.cs
- CodeDelegateCreateExpression.cs
- MarshalByRefObject.cs
- ArgumentOutOfRangeException.cs
- ToolStripDropDown.cs
- InvariantComparer.cs
- ContextActivityUtils.cs
- DataGridViewMethods.cs
- FlowDocumentPage.cs
- FailedToStartupUIException.cs
- Point3DCollection.cs
- DataGridrowEditEndingEventArgs.cs
- PrePrepareMethodAttribute.cs
- DataServiceException.cs
- wgx_sdk_version.cs
- TaiwanLunisolarCalendar.cs
- TimeSpanValidator.cs
- PrimitiveType.cs
- MsmqPoisonMessageException.cs
- ApplicationBuildProvider.cs
- DockProviderWrapper.cs
- SrgsElement.cs
- CharacterBuffer.cs
- DBNull.cs
- ColorConvertedBitmap.cs
- GeneratedView.cs
- ButtonFlatAdapter.cs
- Ref.cs
- FloaterParaClient.cs
- ReachVisualSerializer.cs
- SqlDependency.cs
- Cursors.cs
- MenuCommand.cs
- FocusChangedEventArgs.cs
- SponsorHelper.cs
- ResourcePermissionBase.cs
- ExpressionReplacer.cs
- SystemBrushes.cs
- Camera.cs
- WebPartMovingEventArgs.cs
- ObjectView.cs
- BamlResourceDeserializer.cs
- RegionData.cs
- RtType.cs
- Events.cs