Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataColumnPropertyDescriptor.cs
- SQLMoneyStorage.cs
- DesignerAttribute.cs
- StrokeNodeData.cs
- SqlCrossApplyToCrossJoin.cs
- Message.cs
- LayoutEditorPart.cs
- FormsAuthenticationModule.cs
- XmlAttributes.cs
- PKCS1MaskGenerationMethod.cs
- ClickablePoint.cs
- ValidatorCollection.cs
- ProfileEventArgs.cs
- Brush.cs
- HMAC.cs
- D3DImage.cs
- HostExecutionContextManager.cs
- WebPartDescriptionCollection.cs
- TemplatedMailWebEventProvider.cs
- Facet.cs
- SourceFileInfo.cs
- XmlSignatureManifest.cs
- RSAOAEPKeyExchangeFormatter.cs
- Point3DCollection.cs
- AbandonedMutexException.cs
- SR.cs
- CodeExporter.cs
- ServiceCredentials.cs
- InvalidDataException.cs
- DesignerVerbCollection.cs
- PersonalizableAttribute.cs
- PassportAuthentication.cs
- XmlSchemaInfo.cs
- XmlILModule.cs
- Stream.cs
- WebPartAuthorizationEventArgs.cs
- ClientCultureInfo.cs
- ImageMetadata.cs
- ButtonBaseAdapter.cs
- AmbientValueAttribute.cs
- XmlAttributeOverrides.cs
- Style.cs
- ClientConfigurationSystem.cs
- ChildDocumentBlock.cs
- Int32Collection.cs
- DeflateEmulationStream.cs
- OLEDB_Util.cs
- SqlDependencyListener.cs
- MobileControlsSection.cs
- Expander.cs
- WebPartConnectVerb.cs
- XPathPatternBuilder.cs
- CalendarAutoFormat.cs
- Pointer.cs
- Regex.cs
- SchemaElementDecl.cs
- PeerObject.cs
- ContentWrapperAttribute.cs
- TrustSection.cs
- TextShapeableCharacters.cs
- NavigationService.cs
- CategoryGridEntry.cs
- SqlDataSourceFilteringEventArgs.cs
- DesignTimeDataBinding.cs
- TextReader.cs
- ArgIterator.cs
- DateTimeOffsetConverter.cs
- ManagementOperationWatcher.cs
- CompareInfo.cs
- SocketElement.cs
- COSERVERINFO.cs
- SystemFonts.cs
- NamespaceList.cs
- PtsHost.cs
- ProjectedSlot.cs
- DefaultPrintController.cs
- ReceiveActivityDesigner.cs
- ExpressionBuilderContext.cs
- TreeNodeBinding.cs
- TableLayoutPanel.cs
- RoleGroupCollection.cs
- SafeLocalAllocation.cs
- RoutedEventArgs.cs
- CommonXSendMessage.cs
- DrawListViewItemEventArgs.cs
- SqlTypesSchemaImporter.cs
- SchemaObjectWriter.cs
- URL.cs
- ACL.cs
- RectKeyFrameCollection.cs
- Button.cs
- OutputCacheSettingsSection.cs
- CompositeFontInfo.cs
- ConfigurationStrings.cs
- AuthorizationSection.cs
- SystemInformation.cs
- BitVector32.cs
- BitmapEffect.cs
- WinFormsUtils.cs
- ColorDialog.cs