TemplateColumn Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Representa un tipo de columna para el control DataGrid que permite personalizar el diseño de controles en la columna.
public ref class TemplateColumn : System::Web::UI::WebControls::DataGridColumn
public class TemplateColumn : System.Web.UI.WebControls.DataGridColumn
type TemplateColumn = class
inherit DataGridColumn
Public Class TemplateColumn
Inherits DataGridColumn
- Herencia
Ejemplos
En el ejemplo de código siguiente se muestra cómo usar la TemplateColumn clase para crear una columna en el DataGrid control con un diseño personalizado.
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script runat="server">
DataTable Store = new DataTable();
DataView StoreView;
void Page_Load(Object sender, EventArgs e)
{
if(Session["StoreData"] == null)
{
DataRow dr;
Store = new DataTable();
Store.Columns.Add(new DataColumn("Tax", typeof(String)));
Store.Columns.Add(new DataColumn("Item", typeof(String)));
Store.Columns.Add(new DataColumn("Price", typeof(String)));
Session["StoreData"] = Store;
// Create sample data.
for (int i = 1; i <= 4; i++)
{
dr = Store.NewRow();
dr[0] = "0.0%";
dr[1] = "Item " + i.ToString();
dr[2] = (1.23 * (i + 1)).ToString();
Store.Rows.Add(dr);
}
}
else
Store = (DataTable)Session["StoreData"];
StoreView = new DataView(Store);
StoreView.Sort="Item";
if(!IsPostBack)
BindGrid();
}
void MyDataGrid_Edit(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = e.Item.ItemIndex;
BindGrid();
}
void MyDataGrid_Cancel(Object sender, DataGridCommandEventArgs e)
{
MyDataGrid.EditItemIndex = -1;
BindGrid();
}
void MyDataGrid_Update(Object sender, DataGridCommandEventArgs e)
{
// Get the text box that contains the price to edit.
// For bound columns the edited value is stored in a text box.
// The text box is the first control in the Controls collection.
TextBox priceText = (TextBox)e.Item.Cells[3].Controls[0];
// Get the check box that indicates whether to include tax from the
// TemplateColumn. Notice that in this case, the check box control is
// second control in the Controls collection.
CheckBox taxCheck = (CheckBox)e.Item.Cells[2].Controls[1];
String item = e.Item.Cells[1].Text;
String price = priceText.Text;
DataRow dr;
// With a database, use an update command. Since the data source is
// an in-memory DataTable, delete the old row and replace it with a new one.
// Remove old entry.
StoreView.RowFilter = "Item='" + item + "'";
if (StoreView.Count > 0)
StoreView.Delete(0);
StoreView.RowFilter = "";
// Add new entry.
dr = Store.NewRow();
if (taxCheck.Checked)
dr[0] = "8.6%";
else
dr[0] = "0.0%";
dr[1] = item;
dr[2] = price;
Store.Rows.Add(dr);
MyDataGrid.EditItemIndex = -1;
BindGrid();
}
void BindGrid()
{
MyDataGrid.DataSource = StoreView;
MyDataGrid.DataBind();
}
</script>
<head runat="server">
<title>TemplateColumn Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TemplateColumn Example</h3>
<asp:DataGrid id="MyDataGrid" runat="server"
BorderColor="black"
CellPadding="2"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
ShowFooter="True"
AutoGenerateColumns="false">
<Columns>
<asp:EditCommandColumn
EditText="Edit"
CancelText="Cancel"
UpdateText="Update"
ItemStyle-Wrap="false"
HeaderText="Edit Controls"/>
<asp:BoundColumn HeaderText="Description"
ReadOnly="true"
DataField="Item"/>
<asp:TemplateColumn>
<HeaderTemplate>
<b> Tax </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label
Text='<%# DataBinder.Eval(Container.DataItem, "Tax") %>'
runat="server"/>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox
Text="Taxable"
runat="server"/>
</EditItemTemplate>
<FooterTemplate>
<asp:HyperLink id="HyperLink1"
Text="Microsoft"
NavigateUrl="http://www.microsoft.com"
runat="server"/>
</FooterTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Price"
DataField="Price"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<script runat="server">
Private Store As DataTable = New DataTable()
Private StoreView As DataView
Sub Page_Load(sender As Object, e As EventArgs)
If IsNothing(Session("StoreData")) Then
Dim dr As DataRow
Dim i As Integer
Store = New DataTable()
Store.Columns.Add(New DataColumn("Tax", GetType(String)))
Store.Columns.Add(New DataColumn("Item", GetType(String)))
Store.Columns.Add(New DataColumn("Price", GetType(String)))
Session("StoreData") = Store
' Create sample data.
For i = 1 to 4
dr = Store.NewRow()
dr(0) = "0.0%"
dr(1) = "Item " & i.ToString()
dr(2) = (1.23 * (i + 1)).ToString()
Store.Rows.Add(dr)
Next i
Else
Store = Session("StoreData")
End If
StoreView = New DataView(Store)
StoreView.Sort="Item"
If Not IsPostBack Then
BindGrid()
End If
End Sub
Sub MyDataGrid_Edit(sender As Object, e As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = e.Item.ItemIndex
BindGrid()
End Sub
Sub MyDataGrid_Cancel(sender As Object, e As DataGridCommandEventArgs)
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub
Sub MyDataGrid_Update(sender As Object, e As DataGridCommandEventArgs)
' Get the text box that contains the price to edit.
' For bound columns the edited value is stored in a text box.
' The text box is the first control in the Controls collection.
Dim priceText As TextBox = e.Item.Cells(3).Controls(0)
' Get the check box that indicates whether to include tax from the
' TemplateColumn. Notice that in this case, the check box control is
' second control in the Controls collection.
Dim taxCheck As CheckBox = e.Item.Cells(2).Controls(1)
Dim item As String = e.Item.Cells(1).Text
Dim price As String = priceText.Text
Dim dr As DataRow
' With a database, use an update command. Since the data source is
' an in-memory DataTable, delete the old row and replace it with a new one.
' Remove old entry.
StoreView.RowFilter = "Item='" & item & "'"
If StoreView.Count > 0 Then
StoreView.Delete(0)
End If
StoreView.RowFilter = ""
' Add new entry.
dr = Store.NewRow()
If taxCheck.Checked Then
dr(0) = "8.6%"
Else
dr(0) = "0.0%"
End If
dr(1) = item
dr(2) = price
Store.Rows.Add(dr)
MyDataGrid.EditItemIndex = -1
BindGrid()
End Sub
Sub BindGrid()
MyDataGrid.DataSource = StoreView
MyDataGrid.DataBind()
End Sub
</script>
<head runat="server">
<title>TemplateColumn Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>TemplateColumn Example</h3>
<asp:DataGrid id="MyDataGrid" runat="server"
BorderColor="black"
CellPadding="2"
OnEditCommand="MyDataGrid_Edit"
OnCancelCommand="MyDataGrid_Cancel"
OnUpdateCommand="MyDataGrid_Update"
ShowFooter="True"
AutoGenerateColumns="false">
<Columns>
<asp:EditCommandColumn
EditText="Edit"
CancelText="Cancel"
UpdateText="Update"
ItemStyle-Wrap="false"
HeaderText="Edit Controls"/>
<asp:BoundColumn HeaderText="Description"
ReadOnly="true"
DataField="Item"/>
<asp:TemplateColumn>
<HeaderTemplate>
<b> Tax </b>
</HeaderTemplate>
<ItemTemplate>
<asp:Label
Text='<%# DataBinder.Eval(Container.DataItem, "Tax") %>'
runat="server"/>
</ItemTemplate>
<EditItemTemplate>
<asp:CheckBox
Text="Taxable"
runat="server"/>
</EditItemTemplate>
<FooterTemplate>
<asp:HyperLink id="HyperLink1"
Text="Microsoft"
NavigateUrl="http://www.microsoft.com"
runat="server"/>
</FooterTemplate>
</asp:TemplateColumn>
<asp:BoundColumn HeaderText="Price"
DataField="Price"/>
</Columns>
</asp:DataGrid>
</form>
</body>
</html>
Comentarios
Use el TemplateColumn tipo de columna de un DataGrid control para crear una columna con un diseño de control personalizado. Puede proporcionar una apariencia personalizada para la sección de encabezado, la sección pie de página y la sección de elementos de la columna mediante las HeaderTemplatepropiedades , FooterTemplatey ItemTemplate , respectivamente. También puede controlar cómo se muestra un elemento que se está editando en el TemplateColumn objeto estableciendo la EditItemTemplate propiedad .
Constructores
TemplateColumn() |
Inicializa una nueva instancia de la clase TemplateColumn. |
Propiedades
DesignMode |
Obtiene un valor que indica si la columna está en modo de diseño. (Heredado de DataGridColumn) |
EditItemTemplate |
Obtiene o establece la plantilla para mostrar el elemento seleccionado para su edición en un objeto TemplateColumn. |
FooterStyle |
Obtiene las propiedades de estilo de la sección de pie de página de la columna. (Heredado de DataGridColumn) |
FooterTemplate |
Obtiene o establece la plantilla para mostrar la sección de pie de página del objeto TemplateColumn. |
FooterText |
Obtiene o establece el texto que se muestra en la sección de pie de página de la columna. (Heredado de DataGridColumn) |
HeaderImageUrl |
Obtiene o establece la ubicación de una imagen que se va a mostrar en la sección de encabezado de la columna. (Heredado de DataGridColumn) |
HeaderStyle |
Obtiene las propiedades de estilo de la sección de encabezado de la columna. (Heredado de DataGridColumn) |
HeaderTemplate |
Obtiene o establece la plantilla para mostrar la sección de encabezado del objeto TemplateColumn. |
HeaderText |
Obtiene o establece el texto que se muestra en la sección de encabezado de la columna. (Heredado de DataGridColumn) |
IsTrackingViewState |
Obtiene un valor que determina si el objeto DataGridColumn se marca para que guarde su estado. (Heredado de DataGridColumn) |
ItemStyle |
Obtiene las propiedades de estilo de las celdas de elemento de la columna. (Heredado de DataGridColumn) |
ItemTemplate |
Obtiene o establece la plantilla para mostrar un elemento de datos en un objeto TemplateColumn. |
Owner |
Obtiene el control DataGrid del que forma parte la columna. (Heredado de DataGridColumn) |
SortExpression |
Obtiene o establece el nombre del campo o expresión que se va a pasar al método OnSortCommand(DataGridSortCommandEventArgs) cuando se selecciona una columna para ordenarla. (Heredado de DataGridColumn) |
ViewState |
Obtiene el objeto StateBag, que permite a una columna derivada de la clase DataGridColumn almacenar sus propiedades. (Heredado de DataGridColumn) |
Visible |
Obtiene o establece un valor que indica si se muestra la columna en el control DataGrid. (Heredado de DataGridColumn) |
Métodos
Equals(Object) |
Determina si el objeto especificado es igual que el objeto actual. (Heredado de Object) |
GetHashCode() |
Sirve como la función hash predeterminada. (Heredado de Object) |
GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
Initialize() |
Proporciona la implementación base para restablecer una columna derivada de la clase DataGridColumn a su estado inicial. (Heredado de DataGridColumn) |
InitializeCell(TableCell, Int32, ListItemType) |
Llama a una clase base del objeto TableCell para inicializar la instancia y, a continuación, aplica ListItemType a la celda. |
LoadViewState(Object) |
Carga el estado del objeto DataGridColumn. (Heredado de DataGridColumn) |
MemberwiseClone() |
Crea una copia superficial del Object actual. (Heredado de Object) |
OnColumnChanged() |
Llama al método OnColumnsChanged(). (Heredado de DataGridColumn) |
SaveViewState() |
Guarda el estado actual del objeto DataGridColumn. (Heredado de DataGridColumn) |
ToString() |
Devuelve la representación de cadena de la columna. (Heredado de DataGridColumn) |
TrackViewState() |
Origina el seguimiento de los cambios del estado de vista del control de servidor de manera que se puedan almacenar en el objeto StateBag del control de servidor. (Heredado de DataGridColumn) |
Implementaciones de interfaz explícitas
IStateManager.IsTrackingViewState |
Obtiene un valor que indica si la columna está efectuando un seguimiento de los cambios del estado de vista. (Heredado de DataGridColumn) |
IStateManager.LoadViewState(Object) |
Carga el estado guardado anteriormente. (Heredado de DataGridColumn) |
IStateManager.SaveViewState() |
Devuelve un objeto que contiene los cambios de estado. (Heredado de DataGridColumn) |
IStateManager.TrackViewState() |
Inicia el seguimiento de los cambios de estado. (Heredado de DataGridColumn) |