DataGridColumnCollection Classe

Definição

Uma coleção de DataGridColumnobjetos coluna derivados em que representam as colunas num DataGrid controlo. Esta 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 seguinte demonstra como usar a DataGridColumnCollection coleção para adicionar dinamicamente uma coluna ao DataGrid controlo. Note-se que a Columns propriedade do DataGrid controlo é 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>

Observações

Use a DataGridColumnCollection coleção para gerir programaticamente uma coleção de DataGridColumnobjetos coluna derivados em . Estes objetos representam as colunas num DataGrid controlo. Pode adicionar, remover ou inserir colunas na DataGridColumnCollection coleção.

Note

Quando a AutoGenerateColumns propriedade está definida para true, as colunas criadas pelo DataGrid controlo não são adicionadas à Columns coleção.

O DataGrid controlo não armazena o conteúdo da sua Columns coleção no estado de visualização. Para adicionar ou remover uma coluna dinamicamente, deve adicionar ou remover programaticamente a coluna sempre que a página é atualizada. Forneça uma Page_Init função que adicione ou remova a coluna antes de o DataGrid estado do controlo ser recarregado e o controlo ser reconstruído. Caso contrário, as alterações à Columns coleção não são refletidas no DataGrid controlo quando esta é exibida.

Note

Embora possas adicionar ou remover colunas programaticamente da Columns coleção do DataGrid controlo, é mais fácil listar as colunas estaticamente e depois usar a Visible propriedade para mostrar ou esconder cada coluna.

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

A tabela seguinte lista as diferentes classes de coluna que derivam da DataGridColumn classe.

Classe Column Description
BoundColumn Uma coluna que está ligada a um campo numa fonte de dados. Mostra cada item no campo como texto. Este é o tipo de coluna padrão para o DataGrid controlo.
ButtonColumn Uma coluna que mostra um botão de comando para cada item da coluna. Isto permite criar uma coluna de controlos personalizados de botões, como os botões Adicionar ou Remover.
EditCommandColumn Uma coluna que contém comandos de edição para cada item da coluna.
HyperLinkColumn Uma coluna que mostra cada item da coluna como um hiperlink. O conteúdo da coluna pode ser atribuído a um campo numa fonte de dados ou a texto estático.
TemplateColumn Uma coluna que mostra cada item da coluna de acordo com um modelo especificado. Isto permite-lhe controlar o conteúdo da coluna, por exemplo, para exibir imagens.

Note

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

Construtores

Name Description
DataGridColumnCollection(DataGrid, ArrayList)

Inicializa uma nova instância da DataGridColumnCollection classe.

Propriedades

Name Description
Count

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

IsReadOnly

Recebe um valor que indica se as colunas da DataGridColumnCollection coleção podem ser modificadas.

IsSynchronized

Recebe um valor que indica se o acesso à DataGridColumnCollection coleção está sincronizado (thread safe).

Item[Int32]

Obtém um DataGridColumnobjeto coluna derivado em a partir da DataGridColumnCollection coleção no índice especificado.

SyncRoot

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

Métodos

Name Description
Add(DataGridColumn)

Acrescenta o objeto coluna -derivado especificado DataGridColumnao final da DataGridColumnCollection coleção.

AddAt(Int32, DataGridColumn)

Insere um DataGridColumnobjeto coluna derivado em na DataGridColumnCollection coleção no índice especificado.

Clear()

Remove todos DataGridColumnos objetos coluna derivados da DataGridColumnCollection coleção.

CopyTo(Array, Int32)

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

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetEnumerator()

Devolve uma IEnumerator interface que contém todos os DataGridColumnobjetos coluna derivados em na DataGridColumnCollection coleção.

GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
IndexOf(DataGridColumn)

Devolve o índice do objeto coluna -derivado especificado DataGridColumnda DataGridColumnCollection coleção.

MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
Remove(DataGridColumn)

Remove o objeto coluna -derivado especificado DataGridColumnda DataGridColumnCollection coleção.

RemoveAt(Int32)

Remove um DataGridColumnobjeto coluna derivado em da DataGridColumnCollection coleção no índice especificado.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Implementações de Interface Explícita

Name Description
IStateManager.IsTrackingViewState

Recebe um valor que indica se a coleção está a acompanhar as alterações do estado de visualização.

IStateManager.LoadViewState(Object)

Carrega o estado guardado anteriormente.

IStateManager.SaveViewState()

Devolve um objeto contendo alterações de estado.

IStateManager.TrackViewState()

Começa a acompanhar as alterações de estado.

Métodos da Extensão

Name Description
AsParallel(IEnumerable)

Permite a paralelização de uma consulta.

AsQueryable(IEnumerable)

Converte um IEnumerable para um IQueryable.

Cast<TResult>(IEnumerable)

Conjura os elementos de an IEnumerable para o tipo especificado.

OfType<TResult>(IEnumerable)

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

Aplica-se a

Ver também