DataGridColumnCollection Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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. |