Freigeben über


DataGridColumnCollection-Klasse

Eine Auflistung von Spaltenobjekten, die von DataGridColumn abgeleitet sind und die Spalten in einem DataGrid-Steuerelement darstellen. Diese Klasse kann nicht geerbt werden.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public NotInheritable Class DataGridColumnCollection
    Implements ICollection, IEnumerable, IStateManager
'Usage
Dim instance As DataGridColumnCollection
public sealed class DataGridColumnCollection : ICollection, IEnumerable, IStateManager
public ref class DataGridColumnCollection sealed : ICollection, IEnumerable, IStateManager
public final class DataGridColumnCollection implements ICollection, IEnumerable, 
    IStateManager
public final class DataGridColumnCollection implements ICollection, IEnumerable, 
    IStateManager

Hinweise

Verwenden Sie die DataGridColumnCollection-Auflistung zum programmgesteuerten Verwalten einer Auflistung von Spaltenobjekten, die von DataGridColumn abgeleitet sind. Diese Objekte stellen die Spalten in einem DataGrid-Steuerelement dar. Sie können Spalten in der DataGridColumnCollection-Auflistung hinzufügen, entfernen und einfügen.

Hinweis

Wenn die AutoGenerateColumns-Eigenschaft auf true, festgelegt ist, werden die durch das DataGrid-Steuerelement erstellten Spalten nicht der Columns-Auflistung hinzugefügt.

Das DataGrid-Steuerelement speichert den Inhalt seiner Columns-Auflistung nicht im Ansichtszustand. Zum dynamischen Hinzufügen oder Entfernen einer Spalte müssen Sie diese bei jedem Aktualisieren der Seite programmgesteuert hinzufügen oder entfernen. Stellen Sie eine Page_Init-Funktion bereit, die die Spalte vor dem erneuten Laden des Zustands eines DataGrid-Steuerelements und der Neuerstellung des Steuerelements hinzufügt oder entfernt. Andernfalls haben Änderungen an der Columns-Auflistung keine Auswirkungen auf das DataGrid-Steuerelement, wenn dieses angezeigt wird.

Hinweis

Obwohl Sie Spalten auch programmgesteuert aus der Columns-Auflistung des DataGrid-Steuerelements entfernen oder dieser hinzufügen können, ist es einfacher, diese Spalten statisch aufzulisten und dann mithilfe der Visible-Eigenschaft einzeln anzuzeigen oder auszublenden.

Die Reihenfolge der Spalten in der Auflistung bestimmt die Reihenfolge, in der diese im DataGrid-Steuerelement angezeigt werden.

In der folgenden Tabelle sind die unterschiedlichen Spaltenklassen aufgelistet, die von der DataGridColumn-Klasse abgeleitet werden.

Spaltenklasse

Beschreibung

BoundColumn

Eine Spalte, die an ein Feld in einer Datenquelle gebunden ist. Jedes Element in diesem Feld wird als Text angezeigt. Dies ist der Standardspaltentyp für das DataGrid-Steuerelement.

ButtonColumn

Eine Spalte, in der für jedes Element in der Spalte eine Befehlsschaltfläche angezeigt wird. Damit können Sie eine Spalte mit benutzerdefinierten Schaltflächen-Steuerelementen erstellen, z. B. die Schaltflächen Hinzufügen oder Entfernen.

EditCommandColumn

Eine Spalte, die für jedes Element in der Spalte Bearbeitungsbefehle enthält.

HyperLinkColumn

Eine Spalte, in der jedes Element in der Spalte als Hyperlink 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 entsprechend einer angegebenen Vorlage angezeigt wird. Damit können Sie den Inhalt der Spalte steuern, z. B. das Anzeigen von Bildern.

Hinweis

Die DataGridColumn-Klasse ist die Basisklasse für die aufgelisteten Spaltenklassen. Sie wird nicht direkt in der DataGridColumnCollection-Auflistung verwendet.

Beispiel

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der DataGridColumnCollection-Auflistung dem DataGrid-Steuerelement dynamisch eine Spalte hinzugefügt wird. Beachten Sie, dass es sich bei der Columns-Eigenschaft des DataGrid-Steuerelements um eine Instanz der DataGridColumnCollection-Klasse handelt.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>
   <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.href = NavUrlValue
         column.Target = TargetValue
         column.Text = TextValue
         column.HeaderText = HeaderTextValue

         Return column

      End Function

   </script>
 
<body>
 
   <form runat=server>
 
      <h3>DataGrid Constructor Example</h3>
 
      <b>Product List</b>

      <asp:PlaceHolder id="Place"
           runat="server"/>
 
   </form>
 
</body>
</html>
<%@ Page Language="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>
   <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("https://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.href = NavUrlValue;
         column.Target = TargetValue;
         column.Text = TextValue;
         column.HeaderText = HeaderTextValue;

         return column;

      }

   </script>
 
<body>
 
   <form runat=server>
 
      <h3>DataGrid Constructor Example</h3>
 
      <b>Product List</b>

      <asp:PlaceHolder id="Place"
           runat="server"/>
 
   </form>
 
</body>
</html>

Vererbungshierarchie

System.Object
  System.Web.UI.WebControls.DataGridColumnCollection

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DataGridColumnCollection-Member
System.Web.UI.WebControls-Namespace
DataGrid-Klasse
DataGrid.Columns-Eigenschaft
DataGridColumn-Klasse
BoundColumn-Klasse
ButtonColumn-Klasse
EditCommandColumn
HyperLinkColumn
TemplateColumn