DataGridColumnCollection Klasa

Definicja

Kolekcja DataGridColumnobiektów kolumn pochodnych, które reprezentują kolumny DataGrid w kontrolce.A collection of DataGridColumn-derived column objects that represent the columns in a DataGrid control. Klasa ta nie może być dziedziczona.This class cannot be inherited.

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
Dziedziczenie
DataGridColumnCollection
Implementuje

Przykłady

Poniższy przykład kodu demonstruje, DataGridColumnCollection jak używać kolekcji do dynamicznego dodawania kolumny DataGrid do kontrolki.The following code example demonstrates how to use the DataGridColumnCollection collection to dynamically add a column to the DataGrid control. Należy zauważyć, Columns że właściwość DataGrid kontrolki DataGridColumnCollection jest wystąpieniem klasy.Note that the Columns property of the DataGrid control is an instance of the DataGridColumnCollection class.


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

Uwagi

Użyj kolekcji DataGridColumnCollection , aby programowo zarządzać DataGridColumnkolekcją obiektów kolumn pochodnych.Use the DataGridColumnCollection collection to programmatically manage a collection of DataGridColumn-derived column objects. Te obiekty reprezentują kolumny w DataGrid kontrolce.These objects represent the columns in a DataGrid control. W DataGridColumnCollection kolekcji można dodawać, usuwać i wstawiać kolumny.You can add, remove, or insert columns in the DataGridColumnCollection collection.

Uwaga

Gdy właściwość jest ustawiona na true, kolumny utworzone przez DataGrid formant nie są dodawane do Columns kolekcji. AutoGenerateColumnsWhen the AutoGenerateColumns property is set to true, the columns created by the DataGrid control are not added to the Columns collection.

Kontrolka nie przechowuje zawartości swojej Columns kolekcji w stanie widoku. DataGridThe DataGrid control does not store the contents of its Columns collection in the view state. Aby dynamicznie dodawać lub usuwać kolumny, należy programowo dodać lub usunąć kolumnę za każdym razem, gdy strona jest odświeżana.To add or remove a column dynamically, you must programmatically add or remove the column every time the page is refreshed. Podaj funkcję, która dodaje lub usuwa kolumnę DataGrid przed ponownym załadowaniem stanu kontrolki i formantem zostanie odbudowany. Page_InitProvide a Page_Init function that adds or removes the column before the DataGrid control's state is reloaded and the control is rebuilt. W przeciwnym razie zmiany Columns w kolekcji nie zostaną odzwierciedlone DataGrid w kontrolce, gdy zostanie ona wyświetlona.Otherwise, the changes to the Columns collection are not reflected in the DataGrid control when it is displayed.

Uwaga

Mimo że można programowo dodawać kolumny do lub usuwać kolumny z Columns kolekcji DataGrid kontrolki, łatwiej jest wyświetlić kolumny statycznie, a następnie użyć Visible właściwości do wyświetlania lub ukrywania każdej kolumny.Although you can programmatically add columns to or remove columns from the Columns collection of the DataGrid control, it is easier to list the columns statically and then use the Visible property to display or hide each column.

Kolejność kolumn w kolekcji określa kolejność, w jakiej kolumny są wyświetlane w DataGrid formancie.The order of the columns in the collection determines the order that the columns are displayed in the DataGrid control.

W poniższej tabeli wymieniono różne klasy kolumn pochodne od DataGridColumn klasy.The following table lists the different column classes that derive from the DataGridColumn class.

Klasa kolumnyColumn Class OpisDescription
BoundColumn Kolumna, która jest powiązana z polem w źródle danych.A column that is bound to a field in a data source. Wyświetla każdy element w polu jako tekst.It displays each item in the field as text. Jest to domyślny typ kolumny dla DataGrid kontrolki.This is the default column type for the DataGrid control.
ButtonColumn Kolumna, w której jest wyświetlany przycisk polecenia dla każdego elementu w kolumnie.A column that displays a command button for each item in the column. Pozwala to na utworzenie kolumny niestandardowych kontrolek przycisków, takich jak dodawanie lub usuwanie przycisków.This allows you to create a column of custom button controls, such as Add or Remove buttons.
EditCommandColumn Kolumna zawierająca polecenia edycji dla każdego elementu w kolumnie.A column that contains editing commands for each item in the column.
HyperLinkColumn Kolumna, która wyświetla każdy element w kolumnie jako hiperlink.A column that displays each item in the column as a hyperlink. Zawartość kolumny można powiązać z polem w źródle danych lub z tekstem statycznym.The contents of the column can be bound to a field in a data source, or to static text.
TemplateColumn Kolumna, która wyświetla każdy element w kolumnie zgodnie z określonym szablonem.A column that displays each item in the column according to a specified template. Pozwala to kontrolować zawartość kolumny, na przykład wyświetlania obrazów.This allows you to control the content of the column, for example to display images.

Uwaga

DataGridColumn Klasa jest klasą bazową dla klas kolumn na liście.The DataGridColumn class is the base class for the column classes listed. Nie jest on używany bezpośrednio w DataGridColumnCollection kolekcji.It is not used directly in the DataGridColumnCollection collection.

Konstruktory

DataGridColumnCollection(DataGrid, ArrayList)

Inicjuje nowe wystąpienie klasy DataGridColumnCollection klasy.Initializes a new instance of the DataGridColumnCollection class.

Właściwości

Count

Pobiera liczbę kolumn w DataGridColumnCollection kolekcji.Gets the number of columns in the DataGridColumnCollection collection.

IsReadOnly

Pobiera wartość wskazującą, czy kolumny w DataGridColumnCollection kolekcji mogą być modyfikowane.Gets a value that indicates whether the columns in the DataGridColumnCollection collection can be modified.

IsSynchronized

Pobiera wartość wskazującą, czy dostęp do DataGridColumnCollection kolekcji jest synchronizowany (bezpieczny wątkowo).Gets a value indicating whether access to the DataGridColumnCollection collection is synchronized (thread safe).

Item[Int32]

DataGridColumnCollection Pobiera obiekt DataGridColumn-pochodne kolumny z kolekcji o określonym indeksie.Gets a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

SyncRoot

Pobiera obiekt, którego można użyć do synchronizowania dostępu do DataGridColumnCollection kolekcji.Gets the object that can be used to synchronize access to the DataGridColumnCollection collection.

Metody

Add(DataGridColumn)

Dołącza określony DataGridColumnobiekt pochodnej kolumny do końca DataGridColumnCollection kolekcji.Appends the specified DataGridColumn-derived column object to the end of the DataGridColumnCollection collection.

AddAt(Int32, DataGridColumn)

DataGridColumnCollection Wstawia obiekt DataGridColumn-pochodne kolumny w kolekcji o określonym indeksie.Inserts a DataGridColumn-derived column object in the DataGridColumnCollection collection at the specified index.

Clear()

DataGridColumn UsuwaDataGridColumnCollection z kolekcji wszystkie obiekty pochodne kolumny.Removes all DataGridColumn-derived column objects from the DataGridColumnCollection collection.

CopyTo(Array, Int32)

Kopiuje elementy z DataGridColumnCollection kolekcji do określonego Array, rozpoczynając od określonego indeksu w Array.Copies the items from the DataGridColumnCollection collection to the specified Array, starting at the specified index in the Array.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
GetEnumerator()

Zwraca interfejs, który zawiera DataGridColumnwszystkie obiekty kolumn DataGridColumnCollection pochodnych w kolekcji. IEnumeratorReturns a IEnumerator interface that contains all the DataGridColumn-derived column objects in the DataGridColumnCollection collection.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Type Pobiera bieżące wystąpienie.Gets the Type of the current instance.

(Odziedziczone po Object)
IndexOf(DataGridColumn)

Zwraca indeks podanego DataGridColumnobiektu kolumny pochodnej DataGridColumnCollection z kolekcji.Returns the index of the specified DataGridColumn-derived column object from the DataGridColumnCollection collection.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Objectelementu.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Remove(DataGridColumn)

Usuwa określony DataGridColumnobiekt kolumny pochodnej DataGridColumnCollection z kolekcji.Removes the specified DataGridColumn-derived column object from the DataGridColumnCollection collection.

RemoveAt(Int32)

Usuwa obiekt kolumny pochodnej DataGridColumnCollection z kolekcji o określonym indeksie. DataGridColumnRemoves a DataGridColumn-derived column object from the DataGridColumnCollection collection at the specified index.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy kolekcja śledzi zmiany stanu widoku.Gets a value indicating whether the collection is tracking its view-state changes.

IStateManager.LoadViewState(Object)

Ładuje poprzednio zapisany stan.Loads the previously saved state.

IStateManager.SaveViewState()

Zwraca obiekt zawierający zmiany stanu.Returns an object containing state changes.

IStateManager.TrackViewState()

Uruchamia śledzenie zmian stanu.Starts tracking state changes.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy IEnumerable do określonego typu.Casts the elements of an IEnumerable to the specified type.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable w oparciu o określony typ.Filters the elements of an IEnumerable based on a specified type.

AsParallel(IEnumerable)

Włącza przetwarzanie równoległe zapytania.Enables parallelization of a query.

AsQueryable(IEnumerable)

IEnumerable KonwertujeIQueryabledo.Converts an IEnumerable to an IQueryable.

Dotyczy

Zobacz też