TemplateColumn Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Rappresenta un tipo di colonna per il controllo DataGrid che consente di personalizzare il layout dei controlli nella colonna.
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
- Ereditarietà
Esempio
Nell'esempio di codice seguente viene illustrato come usare la TemplateColumn classe per creare una colonna nel DataGrid controllo con un layout personalizzato.
<%@ 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>
Commenti
Usare il TemplateColumn tipo di colonna in un DataGrid controllo per creare una colonna con un layout di controllo personalizzato. È possibile fornire un aspetto personalizzato per la sezione intestazione, la sezione piè di pagina e la sezione items della colonna usando rispettivamente le HeaderTemplateproprietà , FooterTemplatee ItemTemplate . È anche possibile controllare la modalità di visualizzazione di un elemento nell'oggetto TemplateColumn impostando la EditItemTemplate proprietà .
Costruttori
TemplateColumn() |
Inizializza una nuova istanza della classe TemplateColumn. |
Proprietà
DesignMode |
Ottiene un valore che indica se la colonna è in modalità progettazione. (Ereditato da DataGridColumn) |
EditItemTemplate |
Ottiene o imposta il modello per visualizzare l'elemento selezionato per la modifica in un oggetto TemplateColumn. |
FooterStyle |
Ottiene le proprietà di stile per la sezione del piè di pagina della colonna. (Ereditato da DataGridColumn) |
FooterTemplate |
Ottiene o imposta il modello per visualizzare la sezione relativa al piè di pagina dell'oggetto TemplateColumn. |
FooterText |
Ottiene o imposta il testo visualizzato nella sezione del piè di pagina della colonna. (Ereditato da DataGridColumn) |
HeaderImageUrl |
Ottiene o imposta la posizione di un'immagine da visualizzare nella sezione di intestazione della colonna. (Ereditato da DataGridColumn) |
HeaderStyle |
Ottiene le proprietà di stile per la sezione di intestazione della colonna. (Ereditato da DataGridColumn) |
HeaderTemplate |
Ottiene o imposta il modello per visualizzare la sezione di intestazione dell'oggetto TemplateColumn. |
HeaderText |
Ottiene o imposta il testo visualizzato nella sezione di intestazione della colonna. (Ereditato da DataGridColumn) |
IsTrackingViewState |
Ottiene un valore che determina se l'oggetto DataGridColumn è contrassegnato per il salvataggio dello stato. (Ereditato da DataGridColumn) |
ItemStyle |
Ottiene le proprietà di stile per le celle degli elementi della colonna. (Ereditato da DataGridColumn) |
ItemTemplate |
Ottiene o imposta il modello per visualizzare un elemento di dati in un oggetto TemplateColumn. |
Owner |
Ottiene il controllo DataGrid di cui la colonna è membro. (Ereditato da DataGridColumn) |
SortExpression |
Ottiene o imposta il nome del campo o l'espressione da passare al metodo OnSortCommand(DataGridSortCommandEventArgs) quando una colonna viene selezionata per l'ordinamento. (Ereditato da DataGridColumn) |
ViewState |
Ottiene l'oggetto StateBag che consente a una colonna derivata dalla classe DataGridColumn di memorizzare le relative proprietà. (Ereditato da DataGridColumn) |
Visible |
Ottiene o imposta un valore che indica se la colonna è visibile nel controllo DataGrid. (Ereditato da DataGridColumn) |
Metodi
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
Initialize() |
Fornisce l'implementazione di base per ripristinare lo stato iniziale di una colonna derivata dalla classe DataGridColumn. (Ereditato da DataGridColumn) |
InitializeCell(TableCell, Int32, ListItemType) |
Chiama una classe base dell'oggetto TableCell per inizializzare l'istanza e quindi applica un elemento ListItemType alla cella. |
LoadViewState(Object) |
Carica lo stato dell'oggetto DataGridColumn. (Ereditato da DataGridColumn) |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
OnColumnChanged() |
Chiama il metodo OnColumnsChanged(). (Ereditato da DataGridColumn) |
SaveViewState() |
Salva lo stato corrente dell'oggetto DataGridColumn. (Ereditato da DataGridColumn) |
ToString() |
Restituisce la rappresentazione in forma di stringa della colonna. (Ereditato da DataGridColumn) |
TrackViewState() |
Attiva il rilevamento delle modifiche dello stato di visualizzazione nel controllo server per consentirne la memorizzazione nell'oggetto StateBag del controllo server. (Ereditato da DataGridColumn) |
Implementazioni dell'interfaccia esplicita
IStateManager.IsTrackingViewState |
Ottiene un valore che indica se nella colonna vengono registrate le modifiche dello stato di visualizzazione. (Ereditato da DataGridColumn) |
IStateManager.LoadViewState(Object) |
Carica lo stato salvato in precedenza. (Ereditato da DataGridColumn) |
IStateManager.SaveViewState() |
Restituisce un oggetto contenente le modifiche dello stato. (Ereditato da DataGridColumn) |
IStateManager.TrackViewState() |
Avvia la registrazione delle modifiche dello stato. (Ereditato da DataGridColumn) |