Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / xsp / System / DynamicData / DynamicData / DynamicField.cs / 1305376 / DynamicField.cs
namespace System.Web.DynamicData { using System; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections.Generic; using System.Globalization; using System.Web.Resources; using System.Diagnostics; ////// Field type that can display DynamicData UI /// #if !ORYX_VNEXT [Designer("System.Web.DynamicData.Design.DynamicFieldDesigner, " + AssemblyRef.SystemWebDynamicDataDesign)] #endif public class DynamicField : DataControlField, IAttributeAccessor, IFieldFormattingOptions { private bool _customConvertEmptyStringToNullSet; private bool _customApplyFormatInEditModeSet; private MetaColumn _column; private IDictionary_attributes; /// /// same as base. uses column's display name if possible /// public override string HeaderText { get { object o = ViewState["HeaderText"]; if (o != null) return (string)o; // Default to the Column's DisplayName if (Column != null) return Column.DisplayName; // If we couldn't get it, use the name if the data field return DataField; } set { base.HeaderText = value; } } ////// same as base. uses column's SortExpression property, if possible. /// public override string SortExpression { get { object o = ViewState["SortExpression"]; if (o != null) return (string)o; // Default to the Column's SortExpression if (Column != null) return Column.SortExpression; return String.Empty; } set { base.SortExpression = value; } } [ SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "ReadOnly", Justification="Matches DataBoundControlMode value"), DefaultValue(false), Category("Behavior"), ResourceDescription("DynamicField_ReadOnly"), ] ////// Forces this DynamicField to always load a ReadOnly template /// public virtual bool ReadOnly { get { object o = ViewState["ReadOnly"]; return (o == null ? false : (bool)o); } set { ViewState["ReadOnly"] = value; } } ////// The name of the column that this field handles /// [ Category("Data"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_DataField") ] public virtual string DataField { get { object o = ViewState["DataField"]; return ((o == null) ? String.Empty : (string)o); } set { if (!String.Equals(value, ViewState["DataField"])) { ViewState["DataField"] = value; OnFieldChanged(); } } } ////// The MetaColumn that this fiedl is working with /// protected MetaColumn Column { get { // Don't do anything in Design mode. In some cases in the Designer (in the Edit field dialog), // DesignMode actually returns true, so checking for a null Control provides an additional check. if (DesignMode || Control == null) return null; if (_column == null) { MetaTable table = Control.FindMetaTable(); if (table == null) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, DynamicDataResources.DynamicControl_ControlNeedsToExistInADataControlUsingDynamicDataSource)); } _column = table.GetColumn(DataField); } return _column; } } ////// An optional UIHint specified on the field /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_UIHint") ] public virtual string UIHint { get { object o = ViewState["UIHint"]; return ((o == null) ? String.Empty : (string)o); } set { if (!String.Equals(value, ViewState["UIHint"])) { ViewState["UIHint"] = value; OnFieldChanged(); } } } ////// The validation group that the field template needs to be in /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_ValidationGroup") ] public virtual string ValidationGroup { get { object o = ViewState["ValidationGroup"]; return ((o == null) ? String.Empty : (string)o); } set { if (!String.Equals(value, ViewState["ValidationGroup"])) { ViewState["ValidationGroup"] = value; OnFieldChanged(); } } } ////// See base class documentation /// protected override DataControlField CreateField() { return new DynamicField(); } ////// See base class documentation /// public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) { base.InitializeCell(cell, cellType, rowState, rowIndex); if (cellType == DataControlCellType.DataCell) { DynamicControl control = CreateDynamicControl(); control.DataField = DataField; control.Mode = DetermineControlMode(rowState); // Copy various properties into the control if (_customApplyFormatInEditModeSet) { control.ApplyFormatInEditMode = ApplyFormatInEditMode; } if (_customConvertEmptyStringToNullSet) { control.ConvertEmptyStringToNull = ConvertEmptyStringToNull; } control.DataFormatString = DataFormatString; if (ViewState["HtmlEncode"] == null) { // There is no Column in Design Mode if (!DesignMode) { control.HtmlEncode = Column.HtmlEncode; } } else { control.HtmlEncode = HtmlEncode; } control.NullDisplayText = NullDisplayText; control.UIHint = UIHint; control.ValidationGroup = ValidationGroup; // Pass it all the extra declarative attributes that we got control.SetAttributes(_attributes); ConfigureDynamicControl(control); cell.Controls.Add(control); } } ////// Provides a way for classes deriving from DynamicField to override how DynamicControl gets created. /// ///protected virtual DynamicControl CreateDynamicControl() { return new DynamicControl(); } /// /// Provides a hook to further modify a DynamicControl that was created by the InitializeCell method /// /// protected virtual void ConfigureDynamicControl(DynamicControl control) { Debug.Assert(control != null); } private DataBoundControlMode DetermineControlMode(DataControlRowState rowState) { if (ReadOnly) { return DataBoundControlMode.ReadOnly; } bool edit = (rowState & DataControlRowState.Edit) != 0; bool insert = (rowState & DataControlRowState.Insert) != 0; if (edit) { return DataBoundControlMode.Edit; } else if (insert) { return DataBoundControlMode.Insert; } else { return DataBoundControlMode.ReadOnly; } } ////// See base class documentation /// public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) { Misc.ExtractValuesFromBindableControls(dictionary, cell); } ////// See base class documentation /// protected override void CopyProperties(DataControlField newField) { base.CopyProperties(newField); DynamicField field = ((DynamicField)newField); field.DataField = DataField; field.ApplyFormatInEditMode = ApplyFormatInEditMode; field.ConvertEmptyStringToNull = ConvertEmptyStringToNull; field.HtmlEncode = HtmlEncode; field.ReadOnly = ReadOnly; field.NullDisplayText = NullDisplayText; field.UIHint = UIHint; field.ValidationGroup = ValidationGroup; field.DataFormatString = DataFormatString; } #region IAttributeAccessor Members ////// See IAttributeAccessor /// public string GetAttribute(string key) { if (_attributes == null) return String.Empty; return _attributes[key]; } ////// See IAttributeAccessor /// public void SetAttribute(string key, string value) { if (_attributes == null) { _attributes = new Dictionary(); } _attributes[key] = value; } #endregion #region IFieldFormattingOptions Members /// /// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(false), ResourceDescription("DynamicControlFieldCommon_ConvertEmptyStringToNull") ] public bool ConvertEmptyStringToNull { get { object o = ViewState["ConvertEmptyStringToNull"]; return (o == null ? false : (bool)o); } set { _customConvertEmptyStringToNullSet = true; ViewState["ConvertEmptyStringToNull"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(false), ResourceDescription("DynamicControlFieldCommon_ApplyFormatInEditMode") ] public bool ApplyFormatInEditMode { get { object o = ViewState["ApplyFormatInEditMode"]; return (o == null ? false : (bool)o); } set { _customApplyFormatInEditModeSet = true; ViewState["ApplyFormatInEditMode"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Data"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_DataFormatString") ] public string DataFormatString { get { object o = ViewState["DataFormatString"]; return (o == null ? String.Empty : (string)o); } set { ViewState["DataFormatString"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(true), ResourceDescription("DynamicControlFieldCommon_HtmlEncode") ] public bool HtmlEncode { get { object o = ViewState["HtmlEncode"]; return (o == null ? true : (bool)o); } set { ViewState["HtmlEncode"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_NullDisplayText") ] public string NullDisplayText { get { object o = ViewState["NullDisplayText"]; return (o == null ? String.Empty : (string)o); } set { ViewState["NullDisplayText"] = value; } } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. namespace System.Web.DynamicData { using System; using System.Collections.Specialized; using System.ComponentModel; using System.Diagnostics.CodeAnalysis; using System.Web.UI; using System.Web.UI.WebControls; using System.Collections.Generic; using System.Globalization; using System.Web.Resources; using System.Diagnostics; ////// Field type that can display DynamicData UI /// #if !ORYX_VNEXT [Designer("System.Web.DynamicData.Design.DynamicFieldDesigner, " + AssemblyRef.SystemWebDynamicDataDesign)] #endif public class DynamicField : DataControlField, IAttributeAccessor, IFieldFormattingOptions { private bool _customConvertEmptyStringToNullSet; private bool _customApplyFormatInEditModeSet; private MetaColumn _column; private IDictionary_attributes; /// /// same as base. uses column's display name if possible /// public override string HeaderText { get { object o = ViewState["HeaderText"]; if (o != null) return (string)o; // Default to the Column's DisplayName if (Column != null) return Column.DisplayName; // If we couldn't get it, use the name if the data field return DataField; } set { base.HeaderText = value; } } ////// same as base. uses column's SortExpression property, if possible. /// public override string SortExpression { get { object o = ViewState["SortExpression"]; if (o != null) return (string)o; // Default to the Column's SortExpression if (Column != null) return Column.SortExpression; return String.Empty; } set { base.SortExpression = value; } } [ SuppressMessage("Microsoft.Naming", "CA1716:IdentifiersShouldNotMatchKeywords", MessageId = "ReadOnly", Justification="Matches DataBoundControlMode value"), DefaultValue(false), Category("Behavior"), ResourceDescription("DynamicField_ReadOnly"), ] ////// Forces this DynamicField to always load a ReadOnly template /// public virtual bool ReadOnly { get { object o = ViewState["ReadOnly"]; return (o == null ? false : (bool)o); } set { ViewState["ReadOnly"] = value; } } ////// The name of the column that this field handles /// [ Category("Data"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_DataField") ] public virtual string DataField { get { object o = ViewState["DataField"]; return ((o == null) ? String.Empty : (string)o); } set { if (!String.Equals(value, ViewState["DataField"])) { ViewState["DataField"] = value; OnFieldChanged(); } } } ////// The MetaColumn that this fiedl is working with /// protected MetaColumn Column { get { // Don't do anything in Design mode. In some cases in the Designer (in the Edit field dialog), // DesignMode actually returns true, so checking for a null Control provides an additional check. if (DesignMode || Control == null) return null; if (_column == null) { MetaTable table = Control.FindMetaTable(); if (table == null) { throw new InvalidOperationException(String.Format(CultureInfo.CurrentCulture, DynamicDataResources.DynamicControl_ControlNeedsToExistInADataControlUsingDynamicDataSource)); } _column = table.GetColumn(DataField); } return _column; } } ////// An optional UIHint specified on the field /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_UIHint") ] public virtual string UIHint { get { object o = ViewState["UIHint"]; return ((o == null) ? String.Empty : (string)o); } set { if (!String.Equals(value, ViewState["UIHint"])) { ViewState["UIHint"] = value; OnFieldChanged(); } } } ////// The validation group that the field template needs to be in /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_ValidationGroup") ] public virtual string ValidationGroup { get { object o = ViewState["ValidationGroup"]; return ((o == null) ? String.Empty : (string)o); } set { if (!String.Equals(value, ViewState["ValidationGroup"])) { ViewState["ValidationGroup"] = value; OnFieldChanged(); } } } ////// See base class documentation /// protected override DataControlField CreateField() { return new DynamicField(); } ////// See base class documentation /// public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) { base.InitializeCell(cell, cellType, rowState, rowIndex); if (cellType == DataControlCellType.DataCell) { DynamicControl control = CreateDynamicControl(); control.DataField = DataField; control.Mode = DetermineControlMode(rowState); // Copy various properties into the control if (_customApplyFormatInEditModeSet) { control.ApplyFormatInEditMode = ApplyFormatInEditMode; } if (_customConvertEmptyStringToNullSet) { control.ConvertEmptyStringToNull = ConvertEmptyStringToNull; } control.DataFormatString = DataFormatString; if (ViewState["HtmlEncode"] == null) { // There is no Column in Design Mode if (!DesignMode) { control.HtmlEncode = Column.HtmlEncode; } } else { control.HtmlEncode = HtmlEncode; } control.NullDisplayText = NullDisplayText; control.UIHint = UIHint; control.ValidationGroup = ValidationGroup; // Pass it all the extra declarative attributes that we got control.SetAttributes(_attributes); ConfigureDynamicControl(control); cell.Controls.Add(control); } } ////// Provides a way for classes deriving from DynamicField to override how DynamicControl gets created. /// ///protected virtual DynamicControl CreateDynamicControl() { return new DynamicControl(); } /// /// Provides a hook to further modify a DynamicControl that was created by the InitializeCell method /// /// protected virtual void ConfigureDynamicControl(DynamicControl control) { Debug.Assert(control != null); } private DataBoundControlMode DetermineControlMode(DataControlRowState rowState) { if (ReadOnly) { return DataBoundControlMode.ReadOnly; } bool edit = (rowState & DataControlRowState.Edit) != 0; bool insert = (rowState & DataControlRowState.Insert) != 0; if (edit) { return DataBoundControlMode.Edit; } else if (insert) { return DataBoundControlMode.Insert; } else { return DataBoundControlMode.ReadOnly; } } ////// See base class documentation /// public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) { Misc.ExtractValuesFromBindableControls(dictionary, cell); } ////// See base class documentation /// protected override void CopyProperties(DataControlField newField) { base.CopyProperties(newField); DynamicField field = ((DynamicField)newField); field.DataField = DataField; field.ApplyFormatInEditMode = ApplyFormatInEditMode; field.ConvertEmptyStringToNull = ConvertEmptyStringToNull; field.HtmlEncode = HtmlEncode; field.ReadOnly = ReadOnly; field.NullDisplayText = NullDisplayText; field.UIHint = UIHint; field.ValidationGroup = ValidationGroup; field.DataFormatString = DataFormatString; } #region IAttributeAccessor Members ////// See IAttributeAccessor /// public string GetAttribute(string key) { if (_attributes == null) return String.Empty; return _attributes[key]; } ////// See IAttributeAccessor /// public void SetAttribute(string key, string value) { if (_attributes == null) { _attributes = new Dictionary(); } _attributes[key] = value; } #endregion #region IFieldFormattingOptions Members /// /// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(false), ResourceDescription("DynamicControlFieldCommon_ConvertEmptyStringToNull") ] public bool ConvertEmptyStringToNull { get { object o = ViewState["ConvertEmptyStringToNull"]; return (o == null ? false : (bool)o); } set { _customConvertEmptyStringToNullSet = true; ViewState["ConvertEmptyStringToNull"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(false), ResourceDescription("DynamicControlFieldCommon_ApplyFormatInEditMode") ] public bool ApplyFormatInEditMode { get { object o = ViewState["ApplyFormatInEditMode"]; return (o == null ? false : (bool)o); } set { _customApplyFormatInEditModeSet = true; ViewState["ApplyFormatInEditMode"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Data"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_DataFormatString") ] public string DataFormatString { get { object o = ViewState["DataFormatString"]; return (o == null ? String.Empty : (string)o); } set { ViewState["DataFormatString"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(true), ResourceDescription("DynamicControlFieldCommon_HtmlEncode") ] public bool HtmlEncode { get { object o = ViewState["HtmlEncode"]; return (o == null ? true : (bool)o); } set { ViewState["HtmlEncode"] = value; } } ////// See IFieldFormattingOptions /// [ Category("Behavior"), DefaultValue(""), ResourceDescription("DynamicControlFieldCommon_NullDisplayText") ] public string NullDisplayText { get { object o = ViewState["NullDisplayText"]; return (o == null ? String.Empty : (string)o); } set { ViewState["NullDisplayText"] = value; } } #endregion } } // 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
- PageParser.cs
- SqlClientFactory.cs
- ZipArchive.cs
- InlineObject.cs
- MimePart.cs
- CodeThrowExceptionStatement.cs
- XhtmlConformanceSection.cs
- CompiledQuery.cs
- DocumentScope.cs
- COMException.cs
- WorkflowOperationContext.cs
- TypeBuilderInstantiation.cs
- SqlNode.cs
- XmlEnumAttribute.cs
- HostingEnvironmentSection.cs
- ProtocolsConfigurationEntry.cs
- EntityParameterCollection.cs
- InOutArgument.cs
- ActivityLocationReferenceEnvironment.cs
- BaseTemplatedMobileComponentEditor.cs
- ObjectDataSourceSelectingEventArgs.cs
- XmlCDATASection.cs
- Page.cs
- DocumentGridPage.cs
- CalendarDateChangedEventArgs.cs
- SelectionItemProviderWrapper.cs
- TextRunCacheImp.cs
- RoleManagerSection.cs
- SqlDataSourceCommandEventArgs.cs
- ISAPIWorkerRequest.cs
- ContactManager.cs
- Animatable.cs
- AtomContentProperty.cs
- TextSchema.cs
- TimeZone.cs
- CompositionTarget.cs
- DbDeleteCommandTree.cs
- ToolBarButtonClickEvent.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SpecialNameAttribute.cs
- WinInetCache.cs
- LockRecursionException.cs
- InfoCardMetadataExchangeClient.cs
- ContextMenu.cs
- IOException.cs
- altserialization.cs
- XmlEncoding.cs
- Bits.cs
- RegexGroup.cs
- MarkupCompiler.cs
- BStrWrapper.cs
- TemplateEditingVerb.cs
- SamlAttributeStatement.cs
- Buffer.cs
- AuthenticationSection.cs
- XmlSerializerFactory.cs
- URLMembershipCondition.cs
- SqlComparer.cs
- XmlAttributeCollection.cs
- ClientOptions.cs
- _RegBlobWebProxyDataBuilder.cs
- IndexingContentUnit.cs
- IntegerValidatorAttribute.cs
- EntityProviderFactory.cs
- LiteralSubsegment.cs
- PartialList.cs
- NetworkAddressChange.cs
- MeshGeometry3D.cs
- JournalNavigationScope.cs
- RegexMatch.cs
- DbConnectionStringBuilder.cs
- ListDictionary.cs
- IISMapPath.cs
- WmpBitmapDecoder.cs
- ErrorWebPart.cs
- PersianCalendar.cs
- DisplayInformation.cs
- Pkcs7Recipient.cs
- followingsibling.cs
- XmlSchemaDocumentation.cs
- UnsafeNativeMethods.cs
- FaultHandlingFilter.cs
- NativeMethods.cs
- ExceptionValidationRule.cs
- DataGridViewHitTestInfo.cs
- XPathAncestorQuery.cs
- FixedDocument.cs
- EventHandlersDesigner.cs
- SystemIcmpV6Statistics.cs
- ClearCollection.cs
- ContentIterators.cs
- ListDictionary.cs
- StringConverter.cs
- Barrier.cs
- FrameworkElementFactory.cs
- ProfileParameter.cs
- XmlSchemaComplexContentRestriction.cs
- SrgsText.cs
- LinkedResource.cs
- CustomTypeDescriptor.cs