DataGridColumnCollection Classe

Definizione

Raccolta di oggetti colonna derivati da DataGridColumn che rappresentano le colonne in un controllo DataGrid.A collection of DataGridColumn-derived column objects that represent the columns in a DataGrid control. La classe non può essere ereditata.This class cannot be inherited.

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 riportato di seguito viene illustrato come utilizzare la raccolta DataGridColumnCollection per aggiungere dinamicamente una colonna al controllo DataGrid.The following code example demonstrates how to use the DataGridColumnCollection collection to dynamically add a column to the DataGrid control. Si noti che la proprietà Columns del controllo DataGrid è un'istanza della classe DataGridColumnCollection.Note that the Columns property of the DataGrid control is an instance of the DataGridColumnCollection class.


<%@ 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

Utilizzare la raccolta DataGridColumnCollection per gestire a livello di codice una raccolta di oggetti colonna derivati da DataGridColumn.Use the DataGridColumnCollection collection to programmatically manage a collection of DataGridColumn-derived column objects. Questi oggetti rappresentano le colonne in un controllo DataGrid.These objects represent the columns in a DataGrid control. È possibile aggiungere, rimuovere o inserire colonne nella raccolta di DataGridColumnCollection.You can add, remove, or insert columns in the DataGridColumnCollection collection.

Nota

Quando la proprietà AutoGenerateColumns è impostata su true, le colonne create dal controllo DataGrid non vengono aggiunte alla raccolta Columns.When the AutoGenerateColumns property is set to true, the columns created by the DataGrid control are not added to the Columns collection.

Il controllo DataGrid non archivia il contenuto della relativa raccolta Columns nello stato di visualizzazione.The DataGrid control does not store the contents of its Columns collection in the view state. Per aggiungere o rimuovere una colonna in modo dinamico, è necessario aggiungere o rimuovere a livello di codice la colonna ogni volta che la pagina viene aggiornata.To add or remove a column dynamically, you must programmatically add or remove the column every time the page is refreshed. Fornire una funzione Page_Init che aggiunge o rimuove la colonna prima che lo stato del controllo DataGrid venga ricaricato e che il controllo venga ricompilato.Provide a Page_Init function that adds or removes the column before the DataGrid control's state is reloaded and the control is rebuilt. In caso contrario, le modifiche apportate alla raccolta Columns non vengono riflesse nel controllo DataGrid quando viene visualizzato.Otherwise, the changes to the Columns collection are not reflected in the DataGrid control when it is displayed.

Nota

Sebbene sia possibile aggiungere o rimuovere colonne a livello di codice dalla raccolta Columns del controllo DataGrid, è più semplice elencare le colonne in modo statico e quindi utilizzare la proprietà Visible per visualizzare o nascondere ogni colonna.Although you can programmatically add columns to or remove columns from the Columns collection of the DataGrid control, it is easier to list the columns statically and then use the Visible property to display or hide each column.

L'ordine delle colonne nella raccolta determina l'ordine in cui le colonne vengono visualizzate nel controllo DataGrid.The order of the columns in the collection determines the order that the columns are displayed in the DataGrid control.

Nella tabella seguente sono elencate le diverse classi di colonna che derivano dalla classe DataGridColumn.The following table lists the different column classes that derive from the DataGridColumn class.

Classe ColumnColumn Class DescrizioneDescription
BoundColumn Una colonna associata a un campo in un'origine dati.A column that is bound to a field in a data source. Visualizza ogni elemento nel campo come testo.It displays each item in the field as text. Si tratta del tipo di colonna predefinito per il controllo DataGrid.This is the default column type for the DataGrid control.
ButtonColumn Colonna in cui viene visualizzato un pulsante di comando per ogni elemento della colonna.A column that displays a command button for each item in the column. In questo modo è possibile creare una colonna di controlli Button personalizzati, ad esempio aggiungere o rimuovere pulsanti.This allows you to create a column of custom button controls, such as Add or Remove buttons.
EditCommandColumn Colonna contenente i comandi di modifica per ogni elemento della colonna.A column that contains editing commands for each item in the column.
HyperLinkColumn Colonna che visualizza ogni elemento nella colonna come collegamento ipertestuale.A column that displays each item in the column as a hyperlink. Il contenuto della colonna può essere associato a un campo di un'origine dati o a un testo statico.The contents of the column can be bound to a field in a data source, or to static text.
TemplateColumn Colonna che visualizza ogni elemento nella colonna in base a un modello specificato.A column that displays each item in the column according to a specified template. In questo modo è possibile controllare il contenuto della colonna, ad esempio per visualizzare le immagini.This allows you to control the content of the column, for example to display images.

Nota

La classe DataGridColumn è la classe di base per le classi di colonna elencate.The DataGridColumn class is the base class for the column classes listed. Non viene usato direttamente nella raccolta DataGridColumnCollection.It is not used directly in the DataGridColumnCollection collection.

Costruttori

DataGridColumnCollection(DataGrid, ArrayList)

Inizializza una nuova istanza della classe DataGridColumnCollection.Initializes a new instance of the DataGridColumnCollection class.

Proprietà

Count

Ottiene il numero di colonne dell'insieme DataGridColumnCollection.Gets the number of columns in the DataGridColumnCollection collection.

IsReadOnly

Ottiene un valore che indica se è possibile modificare le colonne dell'insieme DataGridColumnCollection.Gets a value that indicates whether the columns in the DataGridColumnCollection collection can be modified.

IsSynchronized

Ottiene un valore che indica se l'accesso all'insieme DataGridColumnCollection è sincronizzato (thread-safe).Gets a value indicating whether access to the DataGridColumnCollection collection is synchronized (thread safe).

Item[Int32]

Ottiene un oggetto colonna derivato da DataGridColumn dall'insieme DataGridColumnCollection in corrispondenza dell'indice specificato.Gets a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

SyncRoot

Ottiene l'oggetto che può essere utilizzato per sincronizzare l'accesso all'insieme DataGridColumnCollection.Gets the object that can be used to synchronize access to the DataGridColumnCollection collection.

Metodi

Add(DataGridColumn)

Aggiunge alla fine dell'insieme DataGridColumn l'oggetto colonna derivato da DataGridColumnCollection specificato.Appends the specified DataGridColumn-derived column object to the end of the DataGridColumnCollection collection.

AddAt(Int32, DataGridColumn)

Consente di inserire un oggetto colonna derivato da DataGridColumn nell'insieme DataGridColumnCollection in corrispondenza dell'indice specificato.Inserts a DataGridColumn-derived column object in the DataGridColumnCollection collection at the specified index.

Clear()

Consente di rimuovere dall'insieme DataGridColumn tutti gli oggetti colonna derivati da DataGridColumnCollection.Removes all DataGridColumn-derived column objects from the DataGridColumnCollection collection.

CopyTo(Array, Int32)

Copia gli elementi dall'insieme DataGridColumnCollection nella classe Array specificata, a partire dall'indice specificato nella classe Array.Copies the items from the DataGridColumnCollection collection to the specified Array, starting at the specified index in the Array.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
GetEnumerator()

Restituisce un'interfaccia IEnumerator che contiene tutti gli oggetti colonna derivati da DataGridColumn nell'insieme DataGridColumnCollection.Returns a IEnumerator interface that contains all the DataGridColumn-derived column objects in the DataGridColumnCollection collection.

GetHashCode()

Funge da funzione hash predefinita.Serves as the default hash function.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IndexOf(DataGridColumn)

Restituisce l'indice dell'oggetto colonna derivato da DataGridColumn specificato dall'insieme DataGridColumnCollection.Returns the index of the specified DataGridColumn-derived column object from the DataGridColumnCollection collection.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Remove(DataGridColumn)

Rimuove l'oggetto colonna derivato da DataGridColumn specificato dall'insieme DataGridColumnCollection.Removes the specified DataGridColumn-derived column object from the DataGridColumnCollection collection.

RemoveAt(Int32)

Consente di rimuovere un oggetto colonna derivato da DataGridColumn dall'insieme DataGridColumnCollection in corrispondenza dell'indice specificato.Removes a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(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.Gets a value indicating whether the collection is tracking its view-state changes.

IStateManager.LoadViewState(Object)

Carica lo stato precedentemente salvato.Loads the previously saved state.

IStateManager.SaveViewState()

Restituisce un oggetto contenente le modifiche dello stato.Returns an object containing state changes.

IStateManager.TrackViewState()

Avvia la registrazione delle modifiche dello stato.Starts tracking state changes.

Metodi di estensione

Cast<TResult>(IEnumerable)

Esegue il cast degli elementi di un oggetto IEnumerable nel tipo specificato.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra gli elementi di un oggetto IEnumerable in base a un tipo specificato.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Consente la parallelizzazione di una query.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte un oggetto IEnumerable in un oggetto IQueryable.Converts an IEnumerable to an IQueryable.

Si applica a

Vedi anche