Compartir a través de


DataGridColumnCollection Clase

Definición

Una colección de objetos de columna derivados de DataGridColumn que representan las columnas de un control de DataGrid. Esta clase no puede heredarse.

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
Herencia
DataGridColumnCollection
Implementaciones

Ejemplos

En el ejemplo de código siguiente se muestra cómo usar la DataGridColumnCollection colección para agregar dinámicamente una columna al DataGrid control . Tenga en cuenta que la Columns propiedad del DataGrid control es una instancia de la DataGridColumnCollection clase .


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

Comentarios

Use la DataGridColumnCollection colección para administrar mediante programación una colección de objetos de DataGridColumncolumna derivadas. Estos objetos representan las columnas de un DataGrid control . Puede agregar, quitar o insertar columnas en la DataGridColumnCollection colección.

Nota:

Cuando la AutoGenerateColumns propiedad se establece true, en las columnas creadas por el DataGrid control no se agregan a la Columns colección.

El DataGrid control no almacena el contenido de su Columns colección en estado de vista. Para agregar o quitar una columna dinámicamente, debe agregar o quitar la columna mediante programación cada vez que se actualice la página. Proporcione una Page_Init función que agregue o quite la columna antes de que se vuelva a cargar el DataGrid estado del control y se vuelva a generar el control. De lo contrario, los cambios realizados en la Columns colección no se reflejan en el DataGrid control cuando se muestra.

Nota:

Aunque puede agregar columnas mediante programación a o quitar columnas de la Columns colección del DataGrid control, es más fácil enumerar las columnas estáticamente y, a continuación, usar la Visible propiedad para mostrar u ocultar cada columna.

El orden de las columnas de la colección determina el orden en que se muestran las columnas en el DataGrid control .

En la tabla siguiente se enumeran las distintas clases de columna que derivan de la DataGridColumn clase .

Column (clase) Descripción
BoundColumn Columna enlazada a un campo de un origen de datos. Muestra cada elemento del campo como texto. Este es el tipo de columna predeterminado para el DataGrid control .
ButtonColumn Columna que muestra un botón de comando para cada elemento de la columna. Esto le permite crear una columna de controles de botón personalizados, como agregar o quitar botones.
EditCommandColumn Columna que contiene comandos de edición para cada elemento de la columna.
HyperLinkColumn Columna que muestra cada elemento de la columna como hipervínculo. El contenido de la columna se puede enlazar a un campo de un origen de datos o a texto estático.
TemplateColumn Columna que muestra cada elemento de la columna según una plantilla especificada. Esto le permite controlar el contenido de la columna, por ejemplo, para mostrar imágenes.

Nota:

La DataGridColumn clase es la clase base para las clases de columna enumeradas. No se usa directamente en la DataGridColumnCollection colección.

Constructores

DataGridColumnCollection(DataGrid, ArrayList)

Inicializa una nueva instancia de la clase DataGridColumnCollection.

Propiedades

Count

Obtiene el número de columnas de la colección DataGridColumnCollection.

IsReadOnly

Obtiene un valor que indica si se puede modificar las columnas de la colección DataGridColumnCollection.

IsSynchronized

Obtiene un valor que indica si el acceso a la colección DataGridColumnCollection está sincronizado (es seguro para la ejecución de subprocesos).

Item[Int32]

Obtiene un objeto de columna derivado de DataGridColumn de la colección DataGridColumnCollection en el índice especificado.

SyncRoot

Obtiene el objeto que se puede utilizar para sincronizar el acceso a la colección DataGridColumnCollection.

Métodos

Add(DataGridColumn)

Anexa, al final de la colección DataGridColumn, el objeto de columna derivado de DataGridColumnCollection especificado.

AddAt(Int32, DataGridColumn)

Inserta un objeto de columna derivado de DataGridColumn en la colección DataGridColumnCollection en el índice especificado.

Clear()

Quita todos los objetos de columna derivados de DataGridColumn de la colección DataGridColumnCollection.

CopyTo(Array, Int32)

Copia los elementos de DataGridColumnCollection en el objeto Array especificado, empezando por el índice especificado en la matriz Array.

Equals(Object)

Determina si el objeto especificado es igual que el objeto actual.

(Heredado de Object)
GetEnumerator()

Devuelve una interfaz IEnumerator que contiene todos los objetos de columna derivados de DataGridColumn en la colección DataGridColumnCollection.

GetHashCode()

Sirve como la función hash predeterminada.

(Heredado de Object)
GetType()

Obtiene el Type de la instancia actual.

(Heredado de Object)
IndexOf(DataGridColumn)

Devuelve el índice del objeto de columna derivado de DataGridColumn especificado de la colección DataGridColumnCollection.

MemberwiseClone()

Crea una copia superficial del Object actual.

(Heredado de Object)
Remove(DataGridColumn)

Quita el objeto de columna derivado de DataGridColumn especificado de la colección DataGridColumnCollection.

RemoveAt(Int32)

Quita un objeto de columna derivado de DataGridColumn de la colección DataGridColumnCollection en el índice especificado.

ToString()

Devuelve una cadena que representa el objeto actual.

(Heredado de Object)

Implementaciones de interfaz explícitas

IStateManager.IsTrackingViewState

Obtiene un valor que indica si la colección realiza un seguimiento de los cambios de su estado de vista.

IStateManager.LoadViewState(Object)

Carga el estado previamente guardado.

IStateManager.SaveViewState()

Devuelve un objeto que contiene los cambios de estado.

IStateManager.TrackViewState()

Inicia el seguimiento de los cambios de estado.

Métodos de extensión

Cast<TResult>(IEnumerable)

Convierte los elementos de IEnumerable en el tipo especificado.

OfType<TResult>(IEnumerable)

Filtra los elementos de IEnumerable en función de un tipo especificado.

AsParallel(IEnumerable)

Habilita la paralelización de una consulta.

AsQueryable(IEnumerable)

Convierte una interfaz IEnumerable en IQueryable.

Se aplica a

Consulte también