DataGridColumnCollection Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine Auflistung mit von DataGridColumn abgeleiteten Spaltenobjekte, die die Spalten in einem DataGrid-Steuerelement darstellen. Diese Klasse kann nicht vererbt werden.
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
- Vererbung
-
DataGridColumnCollection
- Implementiert
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie Die DataGridColumnCollection Auflistung verwendet wird, um dem DataGrid Steuerelement dynamisch eine Spalte hinzuzufügen. Beachten Sie, dass die Columns -Eigenschaft des DataGrid -Steuerelements eine Instanz der DataGridColumnCollection -Klasse ist.
<%@ 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>
Hinweise
Verwenden Sie die DataGridColumnCollection -Auflistung, um eine Auflistung von abgeleiteten DataGridColumnSpaltenobjekten programmgesteuert zu verwalten. Diese Objekte stellen die Spalten in einem DataGrid -Steuerelement dar. Sie können der DataGridColumnCollection Auflistung Spalten hinzufügen, entfernen oder einfügen.
Hinweis
Wenn die AutoGenerateColumns -Eigenschaft auf true,
die vom DataGrid -Steuerelement erstellten Spalten festgelegt ist, werden der Columns Auflistung nicht hinzugefügt.
Das DataGrid -Steuerelement speichert den Inhalt seiner Columns Auflistung nicht im Ansichtszustand. Um eine Spalte dynamisch hinzuzufügen oder zu entfernen, müssen Sie die Spalte programmgesteuert hinzufügen oder entfernen, wenn die Seite aktualisiert wird. Stellen Sie eine Funktion bereit Page_Init
, die die Spalte hinzufügt oder entfernt, bevor der DataGrid Zustand des Steuerelements neu geladen und das Steuerelement neu erstellt wird. Andernfalls werden die Änderungen an der Columns Auflistung nicht im DataGrid Steuerelement widergespiegelt, wenn es angezeigt wird.
Hinweis
Obwohl Sie der Auflistung des DataGrid Steuerelements programmgesteuert Spalten hinzufügen oder Spalten daraus Columns entfernen können, ist es einfacher, die Spalten statisch auflisten und dann die Visible -Eigenschaft zum Anzeigen oder Ausblenden der einzelnen Spalten zu verwenden.
Die Reihenfolge der Spalten in der Auflistung bestimmt die Reihenfolge, in der die Spalten im DataGrid Steuerelement angezeigt werden.
In der folgenden Tabelle sind die verschiedenen Spaltenklassen aufgeführt, die von der DataGridColumn -Klasse abgeleitet sind.
Column-Klasse | BESCHREIBUNG |
---|---|
BoundColumn | Eine Spalte, die an ein Feld in einer Datenquelle gebunden ist. Jedes Element im Feld wird als Text angezeigt. Dies ist der Standardspaltentyp für das DataGrid Steuerelement. |
ButtonColumn | Eine Spalte, die eine Befehlsschaltfläche für jedes Element in der Spalte anzeigt. Auf diese Weise können Sie eine Spalte mit benutzerdefinierten Schaltflächensteuerelementen erstellen, z. B. Schaltflächen Hinzufügen oder Entfernen. |
EditCommandColumn | Eine Spalte, die Bearbeitungsbefehle für jedes Element in der Spalte enthält. |
HyperLinkColumn | Eine Spalte, in der jedes Element in der Spalte als Link angezeigt wird. Der Inhalt der Spalte kann an ein Feld in einer Datenquelle oder an statischen Text gebunden werden. |
TemplateColumn | Eine Spalte, in der jedes Element in der Spalte gemäß einer angegebenen Vorlage angezeigt wird. Auf diese Weise können Sie den Inhalt der Spalte steuern, z. B. zum Anzeigen von Bildern. |
Hinweis
Die DataGridColumn -Klasse ist die Basisklasse für die aufgelisteten Spaltenklassen. Sie wird nicht direkt in der DataGridColumnCollection Auflistung verwendet.
Konstruktoren
DataGridColumnCollection(DataGrid, ArrayList) |
Initialisiert eine neue Instanz der DataGridColumnCollection-Klasse. |
Eigenschaften
Count |
Ruft die Anzahl der Spalten in der DataGridColumnCollection-Auflistung ab. |
IsReadOnly |
Ruft einen Wert ab, der angibt, ob die Spalten in der DataGridColumnCollection-Auflistung geändert werden können. |
IsSynchronized |
Ruft einen Wert ab, der angibt, ob der Zugriff auf die DataGridColumnCollection-Auflistung synchronisiert (threadsicher) ist. |
Item[Int32] |
Ruft ein von DataGridColumn abgeleitetes Spaltenobjekt am angegebenen Index aus der DataGridColumnCollection-Auflistung ab. |
SyncRoot |
Ruft das Objekt ab, mit dem der Zugriff auf die DataGridColumnCollection-Auflistung synchronisiert werden kann. |
Methoden
Add(DataGridColumn) |
Fügt das angegebene, von DataGridColumn abgeleitete Spaltenobjekt an das Ende der DataGridColumnCollection-Auflistung an. |
AddAt(Int32, DataGridColumn) |
Fügt ein von DataGridColumn abgeleitetes Spaltenobjekt am angegebenen Index in die DataGridColumnCollection-Auflistung ein. |
Clear() |
Entfernt sämtliche von DataGridColumn abgeleiteten Spaltenobjekte aus der DataGridColumnCollection-Auflistung. |
CopyTo(Array, Int32) |
Kopiert die Elemente aus der DataGridColumnCollection-Auflistung in das angegebene Array, wobei am angegebenen Index im Array begonnen wird. |
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetEnumerator() |
Gibt eine IEnumerator-Schnittstelle zurück, die alle von DataGridColumn abgeleiteten Spaltenobjekte in der DataGridColumnCollection-Auflistung enthält. |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetType() |
Ruft den Type der aktuellen Instanz ab. (Geerbt von Object) |
IndexOf(DataGridColumn) |
Gibt den Index des angegebenen, von DataGridColumn abgeleiteten Spaltenobjekts aus der DataGridColumnCollection-Auflistung zurück. |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
Remove(DataGridColumn) |
Entfernt das angegebene, von DataGridColumn abgeleitete Spaltenobjekt aus der DataGridColumnCollection-Auflistung. |
RemoveAt(Int32) |
Entfernt ein von DataGridColumn abgeleitetes Spaltenobjekt am angegebenen Index aus der DataGridColumnCollection-Auflistung. |
ToString() |
Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IStateManager.IsTrackingViewState |
Ruft einen Wert ab, der angibt, ob die Auflistung die Änderungen ihres Ansichtszustands verfolgt. |
IStateManager.LoadViewState(Object) |
Lädt den zuvor gespeicherten Zustand. |
IStateManager.SaveViewState() |
Gibt ein Objekt zurück, das Zustandsänderungen enthält. |
IStateManager.TrackViewState() |
Startet das Verfolgen von Zustandsänderungen. |
Erweiterungsmethoden
Cast<TResult>(IEnumerable) |
Wandelt die Elemente eines IEnumerable in den angegebenen Typ um |
OfType<TResult>(IEnumerable) |
Filtert die Elemente eines IEnumerable anhand eines angegebenen Typs |
AsParallel(IEnumerable) |
Ermöglicht die Parallelisierung einer Abfrage. |
AsQueryable(IEnumerable) |
Konvertiert einen IEnumerable in einen IQueryable. |