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
- DataErrorValidationRule.cs
- RegexReplacement.cs
- brushes.cs
- cookie.cs
- InstalledVoice.cs
- HttpCacheVaryByContentEncodings.cs
- KoreanCalendar.cs
- ILGenerator.cs
- SafeNativeMethods.cs
- diagnosticsswitches.cs
- WorkflowOwnershipException.cs
- ResourceExpression.cs
- TreeWalker.cs
- CompositeActivityMarkupSerializer.cs
- EncoderParameters.cs
- IPEndPoint.cs
- EdmScalarPropertyAttribute.cs
- TabControlCancelEvent.cs
- OciHandle.cs
- TypefaceMetricsCache.cs
- StrokeNodeData.cs
- MetadataCache.cs
- ObjectPropertyMapping.cs
- CanExecuteRoutedEventArgs.cs
- RSAPKCS1KeyExchangeFormatter.cs
- IntegrationExceptionEventArgs.cs
- FragmentQuery.cs
- COM2PropertyDescriptor.cs
- TableAutomationPeer.cs
- ProxyWebPartManager.cs
- DaylightTime.cs
- JournalNavigationScope.cs
- ConsoleCancelEventArgs.cs
- CompilationSection.cs
- Volatile.cs
- MonikerHelper.cs
- SynchronizationValidator.cs
- SqlNotificationRequest.cs
- PageBreakRecord.cs
- XPathEmptyIterator.cs
- baseshape.cs
- XmlParserContext.cs
- entityreference_tresulttype.cs
- ComponentResourceManager.cs
- GlyphingCache.cs
- RightsManagementPermission.cs
- ScriptResourceInfo.cs
- StateBag.cs
- SID.cs
- XmlSchemaAttribute.cs
- DataGridViewComponentPropertyGridSite.cs
- StandardCommandToolStripMenuItem.cs
- RouteTable.cs
- RelationshipDetailsRow.cs
- IUnknownConstantAttribute.cs
- XmlSchemaException.cs
- IList.cs
- DriveInfo.cs
- FileDialogPermission.cs
- Config.cs
- ListViewSortEventArgs.cs
- ModelItemExtensions.cs
- ComponentSerializationService.cs
- SpellerHighlightLayer.cs
- DefaultProxySection.cs
- InvalidFilterCriteriaException.cs
- DuplicateWaitObjectException.cs
- GeneratedCodeAttribute.cs
- ThemeInfoAttribute.cs
- exports.cs
- MetadataArtifactLoader.cs
- Oid.cs
- RemotingConfiguration.cs
- WebServiceParameterData.cs
- OdbcTransaction.cs
- PreservationFileWriter.cs
- DataSourceXmlTextReader.cs
- MediaTimeline.cs
- UriTemplateLiteralPathSegment.cs
- Stackframe.cs
- NativeMethods.cs
- PointAnimationClockResource.cs
- DataProtectionSecurityStateEncoder.cs
- MD5CryptoServiceProvider.cs
- SplitterDesigner.cs
- CheckBoxBaseAdapter.cs
- DiscoveryVersion.cs
- QuaternionAnimationBase.cs
- CompositeCollection.cs
- IFormattable.cs
- GenericNameHandler.cs
- SplineQuaternionKeyFrame.cs
- ControlUtil.cs
- HuffModule.cs
- ContractSearchPattern.cs
- ApplicationInfo.cs
- DbReferenceCollection.cs
- SchemaImporterExtension.cs
- _HeaderInfo.cs
- HandleScope.cs