DataGridColumnCollection Classe

Definição

Uma coleção de objetos de coluna derivados de DataGridColumn que representa as colunas em um controle DataGrid.A collection of DataGridColumn-derived column objects that represent the columns in a DataGrid control. Essa classe não pode ser herdada.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
Herança
DataGridColumnCollection
Implementações

Exemplos

O exemplo de código a seguir demonstra como usar DataGridColumnCollection a coleção para adicionar dinamicamente uma coluna DataGrid ao controle.The following code example demonstrates how to use the DataGridColumnCollection collection to dynamically add a column to the DataGrid control. Observe que a Columns propriedade DataGrid do controle DataGridColumnCollection é uma instância da classe.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>

Comentários

Use a DataGridColumnCollection coleção para gerenciar programaticamente uma DataGridColumncoleção de objetos de coluna derivados.Use the DataGridColumnCollection collection to programmatically manage a collection of DataGridColumn-derived column objects. Esses objetos representam as colunas em um DataGrid controle.These objects represent the columns in a DataGrid control. Você pode adicionar, remover ou inserir colunas na DataGridColumnCollection coleção.You can add, remove, or insert columns in the DataGridColumnCollection collection.

Observação

Quando a AutoGenerateColumns propriedade é definida como true, DataGrid as colunas criadas pelo controle não são adicionadas à Columns coleção.When the AutoGenerateColumns property is set to true, the columns created by the DataGrid control are not added to the Columns collection.

O DataGrid controle não armazena o conteúdo de sua Columns coleção no estado de exibição.The DataGrid control does not store the contents of its Columns collection in the view state. Para adicionar ou remover uma coluna dinamicamente, você deve adicionar ou remover programaticamente a coluna toda vez que a página for atualizada.To add or remove a column dynamically, you must programmatically add or remove the column every time the page is refreshed. Forneça uma Page_Init função que adiciona ou remove a coluna antes que DataGrid o estado do controle seja recarregado e o controle seja recriado.Provide a Page_Init function that adds or removes the column before the DataGrid control's state is reloaded and the control is rebuilt. Caso contrário, as alterações Columns na coleção não serão refletidas DataGrid no controle quando ele for exibido.Otherwise, the changes to the Columns collection are not reflected in the DataGrid control when it is displayed.

Observação

Embora você possa adicionar colunas ou remover colunas da Columns coleção DataGrid do controle programaticamente, é mais fácil listar as colunas estaticamente e, em seguida, usar Visible a propriedade para exibir ou ocultar cada coluna.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.

A ordem das colunas na coleção determina a ordem em que as colunas são exibidas no DataGrid controle.The order of the columns in the collection determines the order that the columns are displayed in the DataGrid control.

A tabela a seguir lista as diferentes classes de coluna que derivam da DataGridColumn classe.The following table lists the different column classes that derive from the DataGridColumn class.

Classe de colunaColumn Class DescriçãoDescription
BoundColumn Uma coluna associada a um campo em uma fonte de dados.A column that is bound to a field in a data source. Ele exibe cada item no campo como texto.It displays each item in the field as text. Esse é o tipo de coluna padrão para DataGrid o controle.This is the default column type for the DataGrid control.
ButtonColumn Uma coluna que exibe um botão de comando para cada item na coluna.A column that displays a command button for each item in the column. Isso permite que você crie uma coluna de controles de botão personalizados, como adicionar ou remover botões.This allows you to create a column of custom button controls, such as Add or Remove buttons.
EditCommandColumn Uma coluna que contém comandos de edição para cada item na coluna.A column that contains editing commands for each item in the column.
HyperLinkColumn Uma coluna que exibe cada item na coluna como um hiperlink.A column that displays each item in the column as a hyperlink. O conteúdo da coluna pode ser associado a um campo em uma fonte de dados ou a um texto estático.The contents of the column can be bound to a field in a data source, or to static text.
TemplateColumn Uma coluna que exibe cada item na coluna de acordo com um modelo especificado.A column that displays each item in the column according to a specified template. Isso permite que você controle o conteúdo da coluna, por exemplo, para exibir imagens.This allows you to control the content of the column, for example to display images.

Observação

A DataGridColumn classe é a classe base para as classes de coluna listadas.The DataGridColumn class is the base class for the column classes listed. Ele não é usado diretamente na DataGridColumnCollection coleção.It is not used directly in the DataGridColumnCollection collection.

Construtores

DataGridColumnCollection(DataGrid, ArrayList)

Inicializa uma nova instância da classe DataGridColumnCollection.Initializes a new instance of the DataGridColumnCollection class.

Propriedades

Count

Obtém o número de colunas na coleção DataGridColumnCollection.Gets the number of columns in the DataGridColumnCollection collection.

IsReadOnly

Obtém um valor que indica se as colunas na coleção DataGridColumnCollection podem ser modificadas.Gets a value that indicates whether the columns in the DataGridColumnCollection collection can be modified.

IsSynchronized

Obtém um valor que indica se o acesso à coleção DataGridColumnCollection é sincronizado (thread-safe).Gets a value indicating whether access to the DataGridColumnCollection collection is synchronized (thread safe).

Item[Int32]

Obtém um objeto de coluna derivado de DataGridColumn da coleção DataGridColumnCollection no índice especificado.Gets a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

SyncRoot

Obtém o objeto que pode ser usado para sincronizar o acesso à coleção DataGridColumnCollection.Gets the object that can be used to synchronize access to the DataGridColumnCollection collection.

Métodos

Add(DataGridColumn)

Acrescenta o objeto de coluna derivado de DataGridColumn especificado ao final da coleção DataGridColumnCollection.Appends the specified DataGridColumn-derived column object to the end of the DataGridColumnCollection collection.

AddAt(Int32, DataGridColumn)

Insere um objeto de coluna derivado de DataGridColumn na coleção DataGridColumnCollection no índice especificado.Inserts a DataGridColumn-derived column object in the DataGridColumnCollection collection at the specified index.

Clear()

Remove todos os objetos de coluna derivados de DataGridColumn da coleção DataGridColumnCollection.Removes all DataGridColumn-derived column objects from the DataGridColumnCollection collection.

CopyTo(Array, Int32)

Copia os itens da coleção DataGridColumnCollection no Array especificado, começando no índice especificado do Array.Copies the items from the DataGridColumnCollection collection to the specified Array, starting at the specified index in the Array.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.Determines whether the specified object is equal to the current object.

(Herdado de Object)
GetEnumerator()

Retorna uma interface IEnumerator que contém todos os objetos de coluna derivados de DataGridColumn na coleção DataGridColumnCollection.Returns a IEnumerator interface that contains all the DataGridColumn-derived column objects in the DataGridColumnCollection collection.

GetHashCode()

Serve como a função de hash padrão.Serves as the default hash function.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.Gets the Type of the current instance.

(Herdado de Object)
IndexOf(DataGridColumn)

Retorna o índice de objeto da coluna derivada de DataGridColumn especificado da coleção DataGridColumnCollection.Returns the index of the specified DataGridColumn-derived column object from the DataGridColumnCollection collection.

MemberwiseClone()

Cria uma cópia superficial do Object atual.Creates a shallow copy of the current Object.

(Herdado de Object)
Remove(DataGridColumn)

Remove o objeto da coluna derivada de DataGridColumn especificado da coleção DataGridColumnCollection.Removes the specified DataGridColumn-derived column object from the DataGridColumnCollection collection.

RemoveAt(Int32)

Remove um objeto de coluna derivado de DataGridColumn da coleção DataGridColumnCollection no índice especificado.Removes a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.Returns a string that represents the current object.

(Herdado de Object)

Implantações explícitas de interface

IStateManager.IsTrackingViewState

Obtém um valor que indica se a coleção está controlando suas alterações de estado de exibição.Gets a value indicating whether the collection is tracking its view-state changes.

IStateManager.LoadViewState(Object)

Carrega o estado salvo anteriormente.Loads the previously saved state.

IStateManager.SaveViewState()

Retorna um objeto que contém as alterações de estado.Returns an object containing state changes.

IStateManager.TrackViewState()

Inicia o controle de alterações de estado.Starts tracking state changes.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.Enables parallelization of a query.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.Converts an IEnumerable to an IQueryable.

Aplica-se a

Veja também