You've already forked linux-packaging-mono
Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
This commit is contained in:
parent
a569aebcfd
commit
e79aa3c0ed
@ -0,0 +1,175 @@
|
||||
//------------------------------------------------------------------------------
|
||||
// <copyright file="TemplateColumn.cs" company="Microsoft">
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// </copyright>
|
||||
//------------------------------------------------------------------------------
|
||||
|
||||
namespace System.Web.UI.WebControls {
|
||||
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.ComponentModel;
|
||||
using System.Web;
|
||||
using System.Web.UI;
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Defines the template for controls layout within a
|
||||
/// <see cref='System.Web.UI.WebControls.DataGrid'/>
|
||||
/// column.</para>
|
||||
/// </devdoc>
|
||||
//
|
||||
|
||||
|
||||
public class TemplateColumn : DataGridColumn {
|
||||
|
||||
private ITemplate headerTemplate;
|
||||
private ITemplate footerTemplate;
|
||||
private ITemplate itemTemplate;
|
||||
private ITemplate editItemTemplate;
|
||||
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// Initializes a new instance of the <see cref='System.Web.UI.WebControls.TemplateColumn'/> class.
|
||||
/// </devdoc>
|
||||
public TemplateColumn() {
|
||||
}
|
||||
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/> that defines how items in edit mode are rendered. </para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(null),
|
||||
WebSysDescription(SR.TemplateColumn_EditItemTemplate),
|
||||
PersistenceMode(PersistenceMode.InnerProperty),
|
||||
TemplateContainer(typeof(DataGridItem))
|
||||
]
|
||||
public virtual ITemplate EditItemTemplate {
|
||||
get {
|
||||
return editItemTemplate;
|
||||
}
|
||||
set {
|
||||
editItemTemplate = value;
|
||||
OnColumnChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/> that defines how the control footer is rendered. </para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(null),
|
||||
WebSysDescription(SR.TemplateColumn_FooterTemplate),
|
||||
PersistenceMode(PersistenceMode.InnerProperty),
|
||||
TemplateContainer(typeof(DataGridItem))
|
||||
]
|
||||
public virtual ITemplate FooterTemplate {
|
||||
get {
|
||||
return footerTemplate;
|
||||
}
|
||||
set {
|
||||
footerTemplate = value;
|
||||
OnColumnChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para>Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/>
|
||||
/// that defines how the control header is rendered.</para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(null),
|
||||
WebSysDescription(SR.TemplateColumn_HeaderTemplate),
|
||||
PersistenceMode(PersistenceMode.InnerProperty),
|
||||
TemplateContainer(typeof(DataGridItem))
|
||||
]
|
||||
public virtual ITemplate HeaderTemplate {
|
||||
get {
|
||||
return headerTemplate;
|
||||
}
|
||||
set {
|
||||
headerTemplate = value;
|
||||
OnColumnChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <devdoc>
|
||||
/// <para> Specifies the <see cref='System.Web.UI.ITemplate' qualify='true'/> that defines how items are rendered. </para>
|
||||
/// </devdoc>
|
||||
[
|
||||
Browsable(false),
|
||||
DefaultValue(null),
|
||||
WebSysDescription(SR.TemplateColumn_ItemTemplate),
|
||||
PersistenceMode(PersistenceMode.InnerProperty),
|
||||
TemplateContainer(typeof(DataGridItem))
|
||||
]
|
||||
public virtual ITemplate ItemTemplate {
|
||||
get {
|
||||
return itemTemplate;
|
||||
}
|
||||
set {
|
||||
itemTemplate = value;
|
||||
OnColumnChanged();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/// <internalonly/>
|
||||
/// <devdoc>
|
||||
/// </devdoc>
|
||||
public override void InitializeCell(TableCell cell, int columnIndex, ListItemType itemType) {
|
||||
base.InitializeCell(cell, columnIndex, itemType);
|
||||
|
||||
ITemplate contentTemplate = null;
|
||||
switch (itemType) {
|
||||
case ListItemType.Header:
|
||||
contentTemplate = headerTemplate;
|
||||
break;
|
||||
|
||||
case ListItemType.Footer:
|
||||
contentTemplate = footerTemplate;
|
||||
break;
|
||||
|
||||
case ListItemType.Item:
|
||||
case ListItemType.AlternatingItem:
|
||||
case ListItemType.SelectedItem:
|
||||
contentTemplate = itemTemplate;
|
||||
break;
|
||||
|
||||
case ListItemType.EditItem:
|
||||
if (editItemTemplate != null)
|
||||
contentTemplate = editItemTemplate;
|
||||
else
|
||||
goto case ListItemType.Item;
|
||||
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 (itemType == ListItemType.Item ||
|
||||
itemType == ListItemType.AlternatingItem ||
|
||||
itemType == ListItemType.SelectedItem ||
|
||||
itemType == ListItemType.EditItem) {
|
||||
cell.Text = " ";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user