Condividi tramite


DataGridColumnCollection Classe

Definizione

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.

Si applica a

Vedi anche