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
- PerspectiveCamera.cs
- XsltException.cs
- FormatControl.cs
- DayRenderEvent.cs
- SendActivityValidator.cs
- LicenseException.cs
- _SslStream.cs
- VisualProxy.cs
- RuntimeHandles.cs
- HiddenFieldDesigner.cs
- BitmapEffectGroup.cs
- PageCatalogPart.cs
- TextEditorSpelling.cs
- CreateInstanceBinder.cs
- CodeVariableReferenceExpression.cs
- ConfigXmlElement.cs
- RegexEditorDialog.cs
- GenericArgumentsUpdater.cs
- SqlNodeTypeOperators.cs
- ColumnProvider.cs
- DiscoveryOperationContextExtension.cs
- NegotiationTokenAuthenticator.cs
- BindableTemplateBuilder.cs
- QilPatternVisitor.cs
- EndOfStreamException.cs
- Rect3D.cs
- Error.cs
- FormViewAutoFormat.cs
- CodeGroup.cs
- BrowserCapabilitiesCompiler.cs
- _CookieModule.cs
- MenuItemCollection.cs
- CharacterBufferReference.cs
- DataStorage.cs
- Select.cs
- JournalEntryListConverter.cs
- WebPartConnectionCollection.cs
- CryptoProvider.cs
- OdbcException.cs
- SendMessageRecord.cs
- HitTestResult.cs
- MappingModelBuildProvider.cs
- ParseNumbers.cs
- ActivityExecutorDelegateInfo.cs
- TemplateNameScope.cs
- DataBoundControlAdapter.cs
- Matrix3D.cs
- VerbConverter.cs
- WebPartDisplayModeCollection.cs
- ProofTokenCryptoHandle.cs
- OleDbDataAdapter.cs
- SessionStateSection.cs
- BaseCodePageEncoding.cs
- SystemBrushes.cs
- NetCodeGroup.cs
- PersistenceTypeAttribute.cs
- DispatcherFrame.cs
- FunctionDescription.cs
- SchemaAttDef.cs
- PropertyGrid.cs
- ToolStripGripRenderEventArgs.cs
- EntityDataSourceWizardForm.cs
- SrgsGrammarCompiler.cs
- ConfigurationPermission.cs
- ControlCachePolicy.cs
- MetadataElement.cs
- DelegatedStream.cs
- ImageListImageEditor.cs
- LinearKeyFrames.cs
- MasterPageCodeDomTreeGenerator.cs
- TransformerTypeCollection.cs
- CustomTypeDescriptor.cs
- XmlDocumentFragment.cs
- OlePropertyStructs.cs
- File.cs
- DebugView.cs
- MappingModelBuildProvider.cs
- ResourceAssociationType.cs
- PagedDataSource.cs
- RectIndependentAnimationStorage.cs
- UrlEncodedParameterWriter.cs
- DateTime.cs
- Point3DConverter.cs
- SpeechSynthesizer.cs
- ObfuscateAssemblyAttribute.cs
- CharEnumerator.cs
- RowTypePropertyElement.cs
- SaveWorkflowAsyncResult.cs
- DynamicRendererThreadManager.cs
- AgileSafeNativeMemoryHandle.cs
- RelationshipFixer.cs
- IndependentAnimationStorage.cs
- CorrelationActionMessageFilter.cs
- VisualProxy.cs
- OleDbEnumerator.cs
- CustomValidator.cs
- Bidi.cs
- WindowsFormsHostPropertyMap.cs
- Label.cs
- PathSegmentCollection.cs