Partilhar via


DataGridColumnCollection Classe

Definição

Uma coleção de objetos de coluna derivados de DataGridColumn que representa as colunas em um controle DataGrid. Essa classe não pode ser herdada.

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 a DataGridColumnCollection coleção para adicionar dinamicamente uma coluna ao DataGrid controle. Observe que a Columns propriedade do DataGrid controle é uma instância da 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>

Comentários

Use a DataGridColumnCollection coleção para gerenciar programaticamente uma coleção de objetos de DataGridColumncoluna derivados. Esses objetos representam as colunas em um DataGrid controle. Você pode adicionar, remover ou inserir colunas na DataGridColumnCollection coleção.

Observação

Quando a AutoGenerateColumns propriedade é definida como true, as colunas criadas pelo DataGrid controle não são adicionadas à Columns coleção.

O DataGrid controle não armazena o conteúdo de sua Columns coleção no estado de exibição. Para adicionar ou remover uma coluna dinamicamente, você deve adicionar ou remover a coluna programaticamente toda vez que a página for atualizada. Forneça uma Page_Init função que adicione ou remova a coluna antes que o DataGrid estado do controle seja recarregado e o controle seja recriado. Caso contrário, as alterações na Columns coleção não são refletidas no DataGrid controle quando ela é exibida.

Observação

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

A ordem das colunas na coleção determina a ordem em que as colunas são exibidas no DataGrid controle.

A tabela a seguir lista as diferentes classes de coluna derivadas da DataGridColumn classe.

Classe Column Descrição
BoundColumn Uma coluna associada a um campo em uma fonte de dados. Ele exibe cada item no campo como texto. Esse é o tipo de coluna padrão para o DataGrid controle.
ButtonColumn Uma coluna que exibe um botão de comando para cada item na coluna. Isso permite que você crie uma coluna de controles de botão personalizados, como botões Adicionar ou Remover.
EditCommandColumn Uma coluna que contém comandos de edição para cada item na coluna.
HyperLinkColumn Uma coluna que exibe cada item na coluna como um hiperlink. O conteúdo da coluna pode ser associado a um campo em uma fonte de dados ou a texto estático.
TemplateColumn Uma coluna que exibe cada item na coluna de acordo com um modelo especificado. Isso permite controlar o conteúdo da coluna, por exemplo, para exibir imagens.

Observação

A DataGridColumn classe é a classe base para as classes de coluna listadas. Ele não é usado diretamente na DataGridColumnCollection coleção.

Construtores

DataGridColumnCollection(DataGrid, ArrayList)

Inicializa uma nova instância da classe DataGridColumnCollection.

Propriedades

Count

Obtém o número de colunas na coleção DataGridColumnCollection.

IsReadOnly

Obtém um valor que indica se as colunas na coleção DataGridColumnCollection podem ser modificadas.

IsSynchronized

Obtém um valor que indica se o acesso à coleção DataGridColumnCollection é sincronizado (thread-safe).

Item[Int32]

Obtém um objeto de coluna derivado de DataGridColumn da coleção DataGridColumnCollection no índice especificado.

SyncRoot

Obtém o objeto que pode ser usado para sincronizar o acesso à coleção DataGridColumnCollection.

Métodos

Add(DataGridColumn)

Acrescenta o objeto de coluna derivado de DataGridColumn especificado ao final da coleção DataGridColumnCollection.

AddAt(Int32, DataGridColumn)

Insere um objeto de coluna derivado de DataGridColumn na coleção DataGridColumnCollection no índice especificado.

Clear()

Remove todos os objetos de coluna derivados de DataGridColumn da coleção DataGridColumnCollection.

CopyTo(Array, Int32)

Copia os itens da coleção DataGridColumnCollection no Array especificado, começando no índice especificado do Array.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Retorna uma interface IEnumerator que contém todos os objetos de coluna derivados de DataGridColumn na coleção DataGridColumnCollection.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(DataGridColumn)

Retorna o índice de objeto da coluna derivada de DataGridColumn especificado da coleção DataGridColumnCollection.

MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Remove(DataGridColumn)

Remove o objeto da coluna derivada de DataGridColumn especificado da coleção DataGridColumnCollection.

RemoveAt(Int32)

Remove um objeto de coluna derivado de DataGridColumn da coleção DataGridColumnCollection no índice especificado.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(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.

IStateManager.LoadViewState(Object)

Carrega o estado salvo anteriormente.

IStateManager.SaveViewState()

Retorna um objeto que contém as alterações de estado.

IStateManager.TrackViewState()

Inicia o controle de alterações de estado.

Métodos de Extensão

Cast<TResult>(IEnumerable)

Converte os elementos de um IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

Filtra os elementos de um IEnumerable com base em um tipo especificado.

AsParallel(IEnumerable)

Habilita a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable em um IQueryable.

Aplica-se a

Confira também