Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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;
///
/// Defines the template for controls layout within a
///
/// field.
///
//
[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;
///
/// Initializes a new instance of the class.
///
public TemplateField() {
}
///
/// Specifies the that defines how alternating items are rendered.
///
[
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();
}
}
///
/// Gets or sets the property that determines whether the field treats empty string as
/// null when the field values are extracted.
///
[
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;
}
}
///
/// Specifies the that defines how rows in edit mode are rendered.
///
[
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 the control footer is 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 header 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 rows in insert mode are 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 items 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();
}
///
/// 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 = " ";
}
}
}
///
/// 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.
///
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.
//------------------------------------------------------------------------------
//
// 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;
///
/// Defines the template for controls layout within a
///
/// field.
///
//
[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;
///
/// Initializes a new instance of the class.
///
public TemplateField() {
}
///
/// Specifies the that defines how alternating items are rendered.
///
[
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();
}
}
///
/// Gets or sets the property that determines whether the field treats empty string as
/// null when the field values are extracted.
///
[
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;
}
}
///
/// Specifies the that defines how rows in edit mode are rendered.
///
[
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 the control footer is 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 header 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 rows in insert mode are 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 items 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();
}
///
/// 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 = " ";
}
}
}
///
/// 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.
///
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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ObjectResult.cs
- ReturnType.cs
- BaseValidator.cs
- CompositeFontInfo.cs
- ValidatedControlConverter.cs
- SinglePageViewer.cs
- CollectionViewSource.cs
- DataGridViewColumnStateChangedEventArgs.cs
- Regex.cs
- Misc.cs
- StopStoryboard.cs
- DataGridPreparingCellForEditEventArgs.cs
- DocumentGrid.cs
- OuterGlowBitmapEffect.cs
- ListenerPerfCounters.cs
- GeneralTransformCollection.cs
- TdsValueSetter.cs
- TypeConverterHelper.cs
- Polyline.cs
- ApplicationId.cs
- HttpListenerElement.cs
- srgsitem.cs
- XPathBinder.cs
- SystemInfo.cs
- HtmlTableRow.cs
- RegionInfo.cs
- MediaElementAutomationPeer.cs
- CounterSetInstance.cs
- TimeSpanStorage.cs
- LocatorGroup.cs
- CharKeyFrameCollection.cs
- QuaternionValueSerializer.cs
- FileNotFoundException.cs
- ObjectItemCachedAssemblyLoader.cs
- DataGridViewRowPrePaintEventArgs.cs
- DnsPermission.cs
- followingsibling.cs
- DesignerProperties.cs
- Msmq3PoisonHandler.cs
- ScrollViewerAutomationPeer.cs
- TextViewSelectionProcessor.cs
- SpecularMaterial.cs
- Buffer.cs
- dbenumerator.cs
- path.cs
- AdapterUtil.cs
- HtmlTable.cs
- validationstate.cs
- DuplexClientBase.cs
- NativeMethods.cs
- WSHttpBindingCollectionElement.cs
- CheckBoxFlatAdapter.cs
- SqlPersistenceWorkflowInstanceDescription.cs
- ErrorLog.cs
- ApplicationFileParser.cs
- FocusChangedEventArgs.cs
- ToolboxCategory.cs
- CommandEventArgs.cs
- DrawingContextDrawingContextWalker.cs
- PageAsyncTask.cs
- ToolStripButton.cs
- Automation.cs
- ReadOnlyCollectionBase.cs
- TimelineClockCollection.cs
- RowVisual.cs
- AutomationProperties.cs
- CFGGrammar.cs
- SqlBuffer.cs
- ChangeBlockUndoRecord.cs
- ApplicationBuildProvider.cs
- BinaryKeyIdentifierClause.cs
- DbProviderFactoriesConfigurationHandler.cs
- ItemsControlAutomationPeer.cs
- JoinElimination.cs
- EditorZoneBase.cs
- RegistryDataKey.cs
- RealProxy.cs
- Int32.cs
- DataObjectAttribute.cs
- HiddenFieldDesigner.cs
- EdgeProfileValidation.cs
- DesignConnectionCollection.cs
- CultureNotFoundException.cs
- PropertyItem.cs
- FontDifferentiator.cs
- PolyLineSegment.cs
- RenamedEventArgs.cs
- NumericExpr.cs
- Point3DCollectionConverter.cs
- HttpRequest.cs
- OptimizedTemplateContent.cs
- ClientUrlResolverWrapper.cs
- KeyPullup.cs
- AssemblyBuilder.cs
- SafeNativeMethods.cs
- SessionSwitchEventArgs.cs
- DataBindingHandlerAttribute.cs
- ExtendedPropertyDescriptor.cs
- mongolianshape.cs
- SecurityUtils.cs