Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / xsp / System / Web / UI / WebControls / TemplateField.cs / 1 / TemplateField.cs
//------------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Globalization; using System.Security.Permissions; ////// // [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class TemplateField : DataControlField { private ITemplate headerTemplate; private ITemplate footerTemplate; private ITemplate itemTemplate; private ITemplate editItemTemplate; private ITemplate alternatingItemTemplate; private ITemplate insertItemTemplate; ///Defines the template for controls layout within a /// ////// field. /// Initializes a new instance of the public TemplateField() { } ///class. /// /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_AlternatingItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate AlternatingItemTemplate { get { return alternatingItemTemplate; } set { alternatingItemTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how alternating items are rendered. /// [ WebCategory("Behavior"), DefaultValue(true), WebSysDescription(SR.ImageField_ConvertEmptyStringToNull) ] public virtual bool ConvertEmptyStringToNull { get { object o = ViewState["ConvertEmptyStringToNull"]; if (o != null) { return (bool)o; } return true; } set { ViewState["ConvertEmptyStringToNull"] = value; } } ///Gets or sets the property that determines whether the field treats empty string as /// null when the field values are extracted. ////// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_EditItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate EditItemTemplate { get { return editItemTemplate; } set { editItemTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how rows in edit mode are rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_FooterTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer)) ] public virtual ITemplate FooterTemplate { get { return footerTemplate; } set { footerTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how the control footer is rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_HeaderTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer)) ] public virtual ITemplate HeaderTemplate { get { return headerTemplate; } set { headerTemplate = value; OnFieldChanged(); } } ///Specifies the ////// that defines how the control header is rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_InsertItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate InsertItemTemplate { get { return insertItemTemplate; } set { insertItemTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how rows in insert mode are rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_ItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate ItemTemplate { get { return itemTemplate; } set { itemTemplate = value; OnFieldChanged(); } } protected override void CopyProperties(DataControlField newField) { ((TemplateField)newField).ConvertEmptyStringToNull = ConvertEmptyStringToNull; ((TemplateField)newField).AlternatingItemTemplate = AlternatingItemTemplate; ((TemplateField)newField).ItemTemplate = ItemTemplate; ((TemplateField)newField).FooterTemplate = FooterTemplate; ((TemplateField)newField).EditItemTemplate = EditItemTemplate; ((TemplateField)newField).HeaderTemplate = HeaderTemplate; ((TemplateField)newField).InsertItemTemplate = InsertItemTemplate; base.CopyProperties(newField); } protected override DataControlField CreateField() { return new TemplateField(); } ///Specifies the ///that defines how items are rendered. /// Extracts the value(s) from the given cell and puts the value(s) into a dictionary. Indicate includeReadOnly /// to have readonly fields' values inserted into the dictionary. /// public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) { DataBoundControlHelper.ExtractValuesFromBindableControls(dictionary, cell); IBindableTemplate bindableTemplate = ItemTemplate as IBindableTemplate; if (((rowState & DataControlRowState.Alternate) != 0) && (AlternatingItemTemplate != null)) { bindableTemplate = AlternatingItemTemplate as IBindableTemplate; } if (((rowState & DataControlRowState.Edit) != 0) && EditItemTemplate != null) { bindableTemplate = EditItemTemplate as IBindableTemplate; } else if ((rowState & DataControlRowState.Insert) != 0 && InsertVisible) { if (InsertItemTemplate != null) { bindableTemplate = InsertItemTemplate as IBindableTemplate; } else { if (EditItemTemplate != null) { bindableTemplate = EditItemTemplate as IBindableTemplate; } } } if (bindableTemplate != null) { bool convertEmptyStringToNull = ConvertEmptyStringToNull; foreach (DictionaryEntry entry in bindableTemplate.ExtractValues(cell.BindingContainer)) { object value = entry.Value; if (convertEmptyStringToNull && value is string && ((string)value).Length == 0) { dictionary[entry.Key] = null; } else { dictionary[entry.Key] = value; } } } return; } ////// /// public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) { base.InitializeCell(cell, cellType, rowState, rowIndex); ITemplate contentTemplate = null; switch (cellType) { case DataControlCellType.Header: contentTemplate = headerTemplate; break; case DataControlCellType.Footer: contentTemplate = footerTemplate; break; case DataControlCellType.DataCell: contentTemplate = itemTemplate; if ((rowState & DataControlRowState.Edit) != 0) { if (editItemTemplate != null) { contentTemplate = editItemTemplate; } } else if ((rowState & DataControlRowState.Insert) != 0) { if (insertItemTemplate != null) { contentTemplate = insertItemTemplate; } else { if (editItemTemplate != null) { contentTemplate = editItemTemplate; } } } else if ((rowState & DataControlRowState.Alternate) != 0) { if (alternatingItemTemplate != null) { contentTemplate = alternatingItemTemplate; } } break; } if (contentTemplate != null) { // The base class might have added a control or some text for some cases // such as header text which need to be removed before // the corresponding template is used. // Note that setting text also has the effect of clearing out any controls. cell.Text = String.Empty; contentTemplate.InstantiateIn(cell); } else { if (cellType == DataControlCellType.DataCell) { cell.Text = " "; } } } ////// public override void ValidateSupportsCallback() { throw new NotSupportedException(SR.GetString(SR.TemplateField_CallbacksNotSupported, Control.ID)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------------ //Override with an empty body if the field's controls all support callback. /// Otherwise, override and throw a useful error message about why the field can't support callbacks. ///// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------------- namespace System.Web.UI.WebControls { using System; using System.Collections; using System.Collections.Specialized; using System.ComponentModel; using System.Globalization; using System.Security.Permissions; ////// // [AspNetHostingPermission(SecurityAction.LinkDemand, Level=AspNetHostingPermissionLevel.Minimal)] [AspNetHostingPermission(SecurityAction.InheritanceDemand, Level=AspNetHostingPermissionLevel.Minimal)] public class TemplateField : DataControlField { private ITemplate headerTemplate; private ITemplate footerTemplate; private ITemplate itemTemplate; private ITemplate editItemTemplate; private ITemplate alternatingItemTemplate; private ITemplate insertItemTemplate; ///Defines the template for controls layout within a /// ////// field. /// Initializes a new instance of the public TemplateField() { } ///class. /// /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_AlternatingItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate AlternatingItemTemplate { get { return alternatingItemTemplate; } set { alternatingItemTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how alternating items are rendered. /// [ WebCategory("Behavior"), DefaultValue(true), WebSysDescription(SR.ImageField_ConvertEmptyStringToNull) ] public virtual bool ConvertEmptyStringToNull { get { object o = ViewState["ConvertEmptyStringToNull"]; if (o != null) { return (bool)o; } return true; } set { ViewState["ConvertEmptyStringToNull"] = value; } } ///Gets or sets the property that determines whether the field treats empty string as /// null when the field values are extracted. ////// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_EditItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate EditItemTemplate { get { return editItemTemplate; } set { editItemTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how rows in edit mode are rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_FooterTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer)) ] public virtual ITemplate FooterTemplate { get { return footerTemplate; } set { footerTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how the control footer is rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_HeaderTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer)) ] public virtual ITemplate HeaderTemplate { get { return headerTemplate; } set { headerTemplate = value; OnFieldChanged(); } } ///Specifies the ////// that defines how the control header is rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_InsertItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate InsertItemTemplate { get { return insertItemTemplate; } set { insertItemTemplate = value; OnFieldChanged(); } } ///Specifies the ///that defines how rows in insert mode are rendered. /// [ Browsable(false), DefaultValue(null), WebSysDescription(SR.TemplateField_ItemTemplate), PersistenceMode(PersistenceMode.InnerProperty), TemplateContainer(typeof(IDataItemContainer), BindingDirection.TwoWay) ] public virtual ITemplate ItemTemplate { get { return itemTemplate; } set { itemTemplate = value; OnFieldChanged(); } } protected override void CopyProperties(DataControlField newField) { ((TemplateField)newField).ConvertEmptyStringToNull = ConvertEmptyStringToNull; ((TemplateField)newField).AlternatingItemTemplate = AlternatingItemTemplate; ((TemplateField)newField).ItemTemplate = ItemTemplate; ((TemplateField)newField).FooterTemplate = FooterTemplate; ((TemplateField)newField).EditItemTemplate = EditItemTemplate; ((TemplateField)newField).HeaderTemplate = HeaderTemplate; ((TemplateField)newField).InsertItemTemplate = InsertItemTemplate; base.CopyProperties(newField); } protected override DataControlField CreateField() { return new TemplateField(); } ///Specifies the ///that defines how items are rendered. /// Extracts the value(s) from the given cell and puts the value(s) into a dictionary. Indicate includeReadOnly /// to have readonly fields' values inserted into the dictionary. /// public override void ExtractValuesFromCell(IOrderedDictionary dictionary, DataControlFieldCell cell, DataControlRowState rowState, bool includeReadOnly) { DataBoundControlHelper.ExtractValuesFromBindableControls(dictionary, cell); IBindableTemplate bindableTemplate = ItemTemplate as IBindableTemplate; if (((rowState & DataControlRowState.Alternate) != 0) && (AlternatingItemTemplate != null)) { bindableTemplate = AlternatingItemTemplate as IBindableTemplate; } if (((rowState & DataControlRowState.Edit) != 0) && EditItemTemplate != null) { bindableTemplate = EditItemTemplate as IBindableTemplate; } else if ((rowState & DataControlRowState.Insert) != 0 && InsertVisible) { if (InsertItemTemplate != null) { bindableTemplate = InsertItemTemplate as IBindableTemplate; } else { if (EditItemTemplate != null) { bindableTemplate = EditItemTemplate as IBindableTemplate; } } } if (bindableTemplate != null) { bool convertEmptyStringToNull = ConvertEmptyStringToNull; foreach (DictionaryEntry entry in bindableTemplate.ExtractValues(cell.BindingContainer)) { object value = entry.Value; if (convertEmptyStringToNull && value is string && ((string)value).Length == 0) { dictionary[entry.Key] = null; } else { dictionary[entry.Key] = value; } } } return; } ////// /// public override void InitializeCell(DataControlFieldCell cell, DataControlCellType cellType, DataControlRowState rowState, int rowIndex) { base.InitializeCell(cell, cellType, rowState, rowIndex); ITemplate contentTemplate = null; switch (cellType) { case DataControlCellType.Header: contentTemplate = headerTemplate; break; case DataControlCellType.Footer: contentTemplate = footerTemplate; break; case DataControlCellType.DataCell: contentTemplate = itemTemplate; if ((rowState & DataControlRowState.Edit) != 0) { if (editItemTemplate != null) { contentTemplate = editItemTemplate; } } else if ((rowState & DataControlRowState.Insert) != 0) { if (insertItemTemplate != null) { contentTemplate = insertItemTemplate; } else { if (editItemTemplate != null) { contentTemplate = editItemTemplate; } } } else if ((rowState & DataControlRowState.Alternate) != 0) { if (alternatingItemTemplate != null) { contentTemplate = alternatingItemTemplate; } } break; } if (contentTemplate != null) { // The base class might have added a control or some text for some cases // such as header text which need to be removed before // the corresponding template is used. // Note that setting text also has the effect of clearing out any controls. cell.Text = String.Empty; contentTemplate.InstantiateIn(cell); } else { if (cellType == DataControlCellType.DataCell) { cell.Text = " "; } } } ////// public override void ValidateSupportsCallback() { throw new NotSupportedException(SR.GetString(SR.TemplateField_CallbacksNotSupported, Control.ID)); } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Override with an empty body if the field's controls all support callback. /// Otherwise, override and throw a useful error message about why the field can't support callbacks. ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Message.cs
- ModelFunctionTypeElement.cs
- HMACSHA256.cs
- ButtonPopupAdapter.cs
- ZipIOExtraFieldPaddingElement.cs
- InlineUIContainer.cs
- CreateCardRequest.cs
- HwndSourceKeyboardInputSite.cs
- VisualCollection.cs
- ClientScriptManagerWrapper.cs
- OdbcConnectionString.cs
- XmlSchemaComplexContent.cs
- HandlerBase.cs
- MILUtilities.cs
- SafeFileHandle.cs
- DesignTimeSiteMapProvider.cs
- COM2ICategorizePropertiesHandler.cs
- ReadWriteSpinLock.cs
- TextRunCacheImp.cs
- TabRenderer.cs
- PingOptions.cs
- ForwardPositionQuery.cs
- ColumnCollection.cs
- OleDbWrapper.cs
- ScriptDescriptor.cs
- IOThreadScheduler.cs
- ImageConverter.cs
- RichTextBoxAutomationPeer.cs
- RefreshEventArgs.cs
- DrawingImage.cs
- DataPagerFieldCommandEventArgs.cs
- InvalidOperationException.cs
- Ipv6Element.cs
- ReflectionUtil.cs
- RtfNavigator.cs
- SharedStatics.cs
- WindowsScrollBarBits.cs
- SafeThemeHandle.cs
- XmlDocumentSerializer.cs
- DataGridViewSelectedRowCollection.cs
- GenericRootAutomationPeer.cs
- TabItem.cs
- EventLogReader.cs
- WsdlInspector.cs
- CollectionViewGroupInternal.cs
- PackageRelationship.cs
- ApplicationSecurityManager.cs
- ExtensionDataObject.cs
- ThreadStateException.cs
- Thread.cs
- QuotedStringWriteStateInfo.cs
- IpcChannel.cs
- TiffBitmapEncoder.cs
- SocketException.cs
- SqlFunctionAttribute.cs
- SqlClientWrapperSmiStreamChars.cs
- SwitchAttribute.cs
- StylusPointPropertyUnit.cs
- BitmapEffectRenderDataResource.cs
- PrimitiveType.cs
- SecureStringHasher.cs
- RelationshipConverter.cs
- ConfigurationManagerInternalFactory.cs
- CodeParameterDeclarationExpression.cs
- CodePageUtils.cs
- SizeKeyFrameCollection.cs
- ScriptModule.cs
- BamlBinaryReader.cs
- TemplateBindingExpression.cs
- EventRoute.cs
- UserInitiatedNavigationPermission.cs
- ValidationRule.cs
- AutomationElement.cs
- PartialCachingControl.cs
- SingleAnimation.cs
- SoapServerMessage.cs
- NameValueFileSectionHandler.cs
- KnownColorTable.cs
- JsonFormatReaderGenerator.cs
- SoapCodeExporter.cs
- CodeDirectiveCollection.cs
- Lease.cs
- ThreadStaticAttribute.cs
- SecondaryIndexDefinition.cs
- UIElementCollection.cs
- recordstatescratchpad.cs
- MemberAccessException.cs
- DataGridViewImageCell.cs
- XmlRawWriterWrapper.cs
- PipelineModuleStepContainer.cs
- RelationshipType.cs
- StringUtil.cs
- WmpBitmapDecoder.cs
- SettingsBindableAttribute.cs
- GridViewDeleteEventArgs.cs
- HandlerFactoryCache.cs
- OrderedHashRepartitionStream.cs
- KeyedCollection.cs
- AssemblyCache.cs
- FrameworkContextData.cs