Freigeben über


DataGridColumnCollection Klasse

Definition

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.

Gilt für:

Weitere Informationen