DataGridColumnCollection 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.
Raccolta di oggetti colonna derivati da DataGridColumn che rappresentano le colonne in un controllo DataGrid. La classe non può essere ereditata.
public ref class DataGridColumnCollection sealed : System::Collections::ICollection, System::Web::UI::IStateManager
public sealed class DataGridColumnCollection : System.Collections.ICollection, System.Web.UI.IStateManager
type DataGridColumnCollection = class
interface ICollection
interface IEnumerable
interface IStateManager
Public NotInheritable Class DataGridColumnCollection
Implements ICollection, IStateManager
- Ereditarietà
-
DataGridColumnCollection
- Implementazioni
Esempio
Nell'esempio di codice seguente viene illustrato come usare la DataGridColumnCollection raccolta per aggiungere dinamicamente una colonna al DataGrid controllo. Si noti che la Columns proprietà del controllo è un'istanza DataGrid della DataGridColumnCollection classe.
<%@ 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">
ICollection CreateDataSource()
{
// Create sample data for the DataGrid control.
DataTable dt = new DataTable();
DataRow dr;
// Define the columns of the table.
dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
// Populate the table with sample values.
for (int i = 0; i < 9; i++)
{
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Item " + i.ToString();
dr[2] = 1.23 * (i + 1);
dt.Rows.Add(dr);
}
DataView dv = new DataView(dt);
return dv;
}
void Page_Load(Object sender, EventArgs e)
{
// Create a DataGrid control.
DataGrid ItemsGrid = new DataGrid();
// Set the properties of the DataGrid.
ItemsGrid.ID = "ItemsGrid";
ItemsGrid.BorderColor = System.Drawing.Color.Black;
ItemsGrid.CellPadding = 3;
ItemsGrid.AutoGenerateColumns = false;
// Set the styles for the DataGrid.
ItemsGrid.HeaderStyle.BackColor =
System.Drawing.Color.FromArgb(0x0000aaaa);
// Create the columns for the DataGrid control. The DataGrid
// columns are dynamically generated. Therefore, the columns
// must be re-created each time the page is refreshed.
// Create and add the columns to the collection.
ItemsGrid.Columns.Add(CreateBoundColumn("IntegerValue", "Item"));
ItemsGrid.Columns.Add(
CreateBoundColumn("StringValue", "Description"));
ItemsGrid.Columns.Add(
CreateBoundColumn("CurrencyValue", "Price", "{0:c}",
HorizontalAlign.Right));
ItemsGrid.Columns.Add(
CreateLinkColumn("http://www.microsoft.com", "_self",
"Microsoft", "Related link"));
// Specify the data source and bind it to the control.
ItemsGrid.DataSource = CreateDataSource();
ItemsGrid.DataBind();
// Add the DataGrid control to the Controls collection of
// the PlaceHolder control.
Place.Controls.Add(ItemsGrid);
}
BoundColumn CreateBoundColumn(String DataFieldValue,
String HeaderTextValue)
{
// This version of the CreateBoundColumn method sets only the
// DataField and HeaderText properties.
// Create a BoundColumn.
BoundColumn column = new BoundColumn();
// Set the properties of the BoundColumn.
column.DataField = DataFieldValue;
column.HeaderText = HeaderTextValue;
return column;
}
BoundColumn CreateBoundColumn(String DataFieldValue,
String HeaderTextValue, String FormatValue,
HorizontalAlign AlignValue)
{
// This version of CreateBoundColumn method sets the DataField,
// HeaderText, and DataFormatString properties. It also sets the
// HorizontalAlign property of the ItemStyle property of the column.
// Create a BoundColumn using the overloaded CreateBoundColumn method.
BoundColumn column = CreateBoundColumn(DataFieldValue, HeaderTextValue);
// Set the properties of the BoundColumn.
column.DataFormatString = FormatValue;
column.ItemStyle.HorizontalAlign = AlignValue;
return column;
}
HyperLinkColumn CreateLinkColumn(String NavUrlValue,
String TargetValue, String TextValue, String HeaderTextValue)
{
// Create a BoundColumn.
HyperLinkColumn column = new HyperLinkColumn();
// Set the properties of the ButtonColumn.
column.NavigateUrl = NavUrlValue;
column.Target = TargetValue;
column.Text = TextValue;
column.HeaderText = HeaderTextValue;
return column;
}
</script>
<head runat="server">
<title>DataGrid Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGrid Constructor Example</h3>
<b>Product List</b>
<asp:PlaceHolder id="Place"
runat="server"/>
</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">
Function CreateDataSource() As ICollection
' Create sample data for the DataGrid control.
Dim dt As DataTable = New DataTable()
Dim dr As DataRow
' Define the columns of the table.
dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
dt.Columns.Add(New DataColumn("StringValue", GetType(string)))
dt.Columns.Add(New DataColumn("CurrencyValue", GetType(double)))
' Populate the table with sample values.
Dim i As Integer
For i = 0 to 8
dr = dt.NewRow()
dr(0) = i
dr(1) = "Item " & i.ToString()
dr(2) = 1.23 * (i + 1)
dt.Rows.Add(dr)
Next i
Dim dv As DataView = New DataView(dt)
Return dv
End Function
Sub Page_Load(sender As Object, e As EventArgs)
' Create a DataGrid control.
Dim ItemsGrid As DataGrid = New DataGrid()
' Set the properties of the DataGrid.
ItemsGrid.ID = "ItemsGrid"
ItemsGrid.BorderColor = System.Drawing.Color.Black
ItemsGrid.CellPadding = 3
ItemsGrid.AutoGenerateColumns = False
' Set the styles for the DataGrid.
ItemsGrid.HeaderStyle.BackColor = System.Drawing.Color.FromArgb(&H0000aaaa)
' Create the columns for the DataGrid control. The DataGrid
' columns are dynamically generated. Therefore, the columns
' must be re-created each time the page is refreshed.
' Create and add the columns to the collection.
ItemsGrid.Columns.Add(CreateBoundColumn("IntegerValue", "Item"))
ItemsGrid.Columns.Add( _
CreateBoundColumn("StringValue", "Description"))
ItemsGrid.Columns.Add( _
CreateBoundColumn("CurrencyValue", "Price", "{0:c}", _
HorizontalAlign.Right))
ItemsGrid.Columns.Add( _
CreateLinkColumn("http:'www.microsoft.com", "_self", _
"Microsoft", "Related link"))
' Specify the data source and bind it to the control.
ItemsGrid.DataSource = CreateDataSource()
ItemsGrid.DataBind()
' Add the DataGrid control to the Controls collection of
' the PlaceHolder control.
Place.Controls.Add(ItemsGrid)
End Sub
Function CreateBoundColumn(DataFieldValue As String, HeaderTextValue As String) As BoundColumn
' This version of CreateBoundColumn method sets only the
' DataField and HeaderText properties.
' Create a BoundColumn.
Dim column As BoundColumn = New BoundColumn()
' Set the properties of the BoundColumn.
column.DataField = DataFieldValue
column.HeaderText = HeaderTextValue
Return column
End Function
Function CreateBoundColumn(DataFieldValue As String, _
HeaderTextValue As String, FormatValue As String, _
AlignValue As HorizontalAlign) As BoundColumn
' This version of CreateBoundColumn method sets the DataField,
' HeaderText, and DataFormatString properties. It also sets the
' HorizontalAlign property of the ItemStyle property of the column.
' Create a BoundColumn using the overloaded CreateBoundColumn method.
Dim column As BoundColumn = CreateBoundColumn(DataFieldValue, HeaderTextValue)
' Set the properties of the BoundColumn.
column.DataFormatString = FormatValue
column.ItemStyle.HorizontalAlign = AlignValue
Return column
End Function
Function CreateLinkColumn(NavUrlValue As String, TargetValue As String, _
TextValue As String, HeaderTextValue As String) As HyperLinkColumn
' Create a BoundColumn.
Dim column As HyperLinkColumn = New HyperLinkColumn()
' Set the properties of the ButtonColumn.
column.NavigateUrl = NavUrlValue
column.Target = TargetValue
column.Text = TextValue
column.HeaderText = HeaderTextValue
Return column
End Function
</script>
<head runat="server">
<title>DataGrid Constructor Example</title>
</head>
<body>
<form id="form1" runat="server">
<h3>DataGrid Constructor Example</h3>
<b>Product List</b>
<asp:PlaceHolder id="Place"
runat="server"/>
</form>
</body>
</html>
Commenti
Usare la DataGridColumnCollection raccolta per gestire a livello di codice una raccolta di DataGridColumnoggetti di colonna derivata. Questi oggetti rappresentano le colonne in un DataGrid controllo. È possibile aggiungere, rimuovere o inserire colonne nella DataGridColumnCollection raccolta.
Nota
Quando la AutoGenerateColumns proprietà è impostata sulle true,
colonne create dal DataGrid controllo non vengono aggiunte alla Columns raccolta.
Il DataGrid controllo non archivia il contenuto della raccolta Columns nello stato di visualizzazione. Per aggiungere o rimuovere dinamicamente una colonna, è necessario aggiungere o rimuovere la colonna a livello di codice ogni volta che la pagina viene aggiornata. Specificare una Page_Init
funzione che aggiunge o rimuove la colonna prima DataGrid che lo stato del controllo venga ricaricato e il controllo venga ricompilato. In caso contrario, le modifiche apportate alla Columns raccolta non vengono riflesse nel DataGrid controllo quando viene visualizzato.
Nota
Anche se è possibile aggiungere colonne a livello di codice o rimuovere colonne dalla Columns raccolta del DataGrid controllo, è più semplice elencare le colonne in modo statico e quindi usare la Visible proprietà per visualizzare o nascondere ogni colonna.
L'ordine delle colonne nell'insieme determina l'ordine di visualizzazione delle colonne nel DataGrid controllo.
Nella tabella seguente sono elencate le diverse classi di colonna che derivano dalla DataGridColumn classe .
Classe Column | Descrizione |
---|---|
BoundColumn | Colonna associata a un campo in un'origine dati. Visualizza ogni elemento nel campo come testo. Si tratta del tipo di colonna predefinito per il DataGrid controllo. |
ButtonColumn | Colonna che visualizza un pulsante di comando per ogni elemento nella colonna. In questo modo è possibile creare una colonna di controlli pulsante personalizzati, ad esempio Aggiungi o Rimuovi pulsanti. |
EditCommandColumn | Colonna che contiene comandi di modifica per ogni elemento nella colonna. |
HyperLinkColumn | Colonna che visualizza ogni elemento nella colonna come collegamento ipertestuale. Il contenuto della colonna può essere associato a un campo in un'origine dati o a testo statico. |
TemplateColumn | Colonna che visualizza ogni elemento nella colonna in base a un modello specificato. In questo modo è possibile controllare il contenuto della colonna, ad esempio per visualizzare immagini. |
Nota
La DataGridColumn classe è la classe di base per le classi di colonna elencate. Non viene usato direttamente nella DataGridColumnCollection raccolta.
Costruttori
DataGridColumnCollection(DataGrid, ArrayList) |
Inizializza una nuova istanza della classe DataGridColumnCollection. |
Proprietà
Count |
Ottiene il numero di colonne dell'insieme DataGridColumnCollection. |
IsReadOnly |
Ottiene un valore che indica se è possibile modificare le colonne dell'insieme DataGridColumnCollection. |
IsSynchronized |
Ottiene un valore che indica se l'accesso all'insieme DataGridColumnCollection è sincronizzato (thread-safe). |
Item[Int32] |
Ottiene un oggetto colonna derivato da DataGridColumn dall'insieme DataGridColumnCollection in corrispondenza dell'indice specificato. |
SyncRoot |
Ottiene l'oggetto che può essere utilizzato per sincronizzare l'accesso all'insieme DataGridColumnCollection. |
Metodi
Add(DataGridColumn) |
Aggiunge alla fine dell'insieme DataGridColumn l'oggetto colonna derivato da DataGridColumnCollection specificato. |
AddAt(Int32, DataGridColumn) |
Consente di inserire un oggetto colonna derivato da DataGridColumn nell'insieme DataGridColumnCollection in corrispondenza dell'indice specificato. |
Clear() |
Consente di rimuovere dall'insieme DataGridColumn tutti gli oggetti colonna derivati da DataGridColumnCollection. |
CopyTo(Array, Int32) |
Copia gli elementi dall'insieme DataGridColumnCollection nella classe Array specificata, a partire dall'indice specificato nella classe Array. |
Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
GetEnumerator() |
Restituisce un'interfaccia IEnumerator che contiene tutti gli oggetti colonna derivati da DataGridColumn nell'insieme DataGridColumnCollection. |
GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
GetType() |
Ottiene l'oggetto Type dell'istanza corrente. (Ereditato da Object) |
IndexOf(DataGridColumn) |
Restituisce l'indice dell'oggetto colonna derivato da DataGridColumn specificato dall'insieme DataGridColumnCollection. |
MemberwiseClone() |
Crea una copia superficiale dell'oggetto Object corrente. (Ereditato da Object) |
Remove(DataGridColumn) |
Rimuove l'oggetto colonna derivato da DataGridColumn specificato dall'insieme DataGridColumnCollection. |
RemoveAt(Int32) |
Consente di rimuovere un oggetto colonna derivato da DataGridColumn dall'insieme DataGridColumnCollection in corrispondenza dell'indice specificato. |
ToString() |
Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object) |
Implementazioni dell'interfaccia esplicita
IStateManager.IsTrackingViewState |
Ottiene un valore che indica se l'insieme tiene traccia delle modifiche apportate al relativo stato di visualizzazione. |
IStateManager.LoadViewState(Object) |
Carica lo stato precedentemente salvato. |
IStateManager.SaveViewState() |
Restituisce un oggetto contenente le modifiche dello stato. |
IStateManager.TrackViewState() |
Avvia la registrazione delle modifiche dello stato. |
Metodi di estensione
Cast<TResult>(IEnumerable) |
Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato. |
OfType<TResult>(IEnumerable) |
Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato. |
AsParallel(IEnumerable) |
Consente la parallelizzazione di una query. |
AsQueryable(IEnumerable) |
Converte un oggetto IEnumerable in un oggetto IQueryable. |