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
- ConcurrentQueue.cs
- LogicalChannelCollection.cs
- Rotation3DKeyFrameCollection.cs
- PathNode.cs
- BitmapVisualManager.cs
- AttachedPropertyBrowsableAttribute.cs
- AssertFilter.cs
- RectAnimation.cs
- VariableElement.cs
- XslAst.cs
- SQLMembershipProvider.cs
- TemplateBindingExpression.cs
- RouteItem.cs
- CacheMode.cs
- NameTable.cs
- EntityType.cs
- FileDialog.cs
- UserPreferenceChangingEventArgs.cs
- BaseParser.cs
- DataServiceEntityAttribute.cs
- RawMouseInputReport.cs
- GeneralTransform3DGroup.cs
- Activity.cs
- MsmqReceiveHelper.cs
- SortAction.cs
- ReaderContextStackData.cs
- IisTraceListener.cs
- MexServiceChannelBuilder.cs
- NativeRightsManagementAPIsStructures.cs
- ColorDialog.cs
- PreviewPageInfo.cs
- ProviderUtil.cs
- FrameDimension.cs
- MetadataItemEmitter.cs
- FontCacheLogic.cs
- ProfilePropertySettingsCollection.cs
- UidPropertyAttribute.cs
- BitmapMetadataEnumerator.cs
- InstanceNotReadyException.cs
- MsdtcClusterUtils.cs
- Signature.cs
- CompositionTarget.cs
- EllipticalNodeOperations.cs
- ZipIOExtraFieldElement.cs
- CompensatableTransactionScopeActivity.cs
- CodeCompileUnit.cs
- Profiler.cs
- ActiveXHelper.cs
- SiteIdentityPermission.cs
- ErrorFormatterPage.cs
- KeyGestureValueSerializer.cs
- TextCompositionEventArgs.cs
- BufferBuilder.cs
- DocumentPaginator.cs
- DbParameterCollectionHelper.cs
- SymDocumentType.cs
- ToolStripSeparatorRenderEventArgs.cs
- ScriptServiceAttribute.cs
- InternalRelationshipCollection.cs
- DataGridViewRowStateChangedEventArgs.cs
- UnrecognizedAssertionsBindingElement.cs
- ClientBuildManager.cs
- CommandConverter.cs
- TripleDESCryptoServiceProvider.cs
- SqlCharStream.cs
- WebDisplayNameAttribute.cs
- TextPointer.cs
- ProviderMetadataCachedInformation.cs
- Translator.cs
- IgnoreDeviceFilterElement.cs
- RegistryDataKey.cs
- DependencyPropertyKind.cs
- PropertyGroupDescription.cs
- ServiceObjectContainer.cs
- CustomServiceCredentials.cs
- StringInfo.cs
- XmlPreloadedResolver.cs
- PowerModeChangedEventArgs.cs
- DataFieldEditor.cs
- Blend.cs
- ShowExpandedMultiValueConverter.cs
- ShaderEffect.cs
- ListDictionary.cs
- LinqDataSourceEditData.cs
- QualificationDataItem.cs
- JsonFormatWriterGenerator.cs
- ColorTransformHelper.cs
- EncodingFallbackAwareXmlTextWriter.cs
- ListViewGroup.cs
- DynamicValidatorEventArgs.cs
- ClientReliableChannelBinder.cs
- StorageAssociationSetMapping.cs
- KeyMatchBuilder.cs
- MaskedTextBoxDesigner.cs
- X509CertificateValidationMode.cs
- ImageListUtils.cs
- ObjectViewFactory.cs
- EditingCommands.cs
- CompilerHelpers.cs
- DateTimeStorage.cs