Udostępnij za pośrednictwem


DataGridColumnCollection Klasa

Definicja

Kolekcja DataGridColumnobiektów kolumn pochodnych reprezentujących kolumny w kontrolce DataGrid . Klasa ta nie może być dziedziczona.

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 przedstawia sposób dynamicznego dodawania kolumny do kontrolki DataGrid za DataGridColumnCollection pomocą kolekcji. Należy pamiętać, że Columns właściwość kontrolki DataGrid jest wystąpieniem DataGridColumnCollection klasy.


<%@ 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ć kolekcją DataGridColumnobiektów kolumn pochodnych. Te obiekty reprezentują kolumny w kontrolce DataGrid . Możesz dodawać, usuwać lub wstawiać kolumny w kolekcji DataGridColumnCollection .

Uwaga

Gdy AutoGenerateColumns właściwość jest ustawiona na true, kolumny utworzone przez DataGrid kontrolkę, nie są dodawane do kolekcji Columns .

Kontrolka DataGrid nie przechowuje zawartości kolekcji Columns w stanie widoku. Aby dynamicznie dodać lub usunąć kolumnę, należy programowo dodać lub usunąć kolumnę przy każdym odświeżeniu strony. Podaj funkcję, która dodaje lub usuwa kolumnę Page_Init przed DataGrid ponownym załadowaniem stanu kontrolki, a kontrolka zostanie ponownie skompilowana. W przeciwnym razie zmiany Columns w kolekcji nie są odzwierciedlane w kontrolce DataGrid po jej wyświetleniu.

Uwaga

Mimo że można programowo dodawać 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świetlenia lub ukrycia każdej kolumny.

Kolejność kolumn w kolekcji określa kolejność wyświetlania kolumn w kontrolce DataGrid .

W poniższej tabeli wymieniono różne klasy kolumn, które pochodzą z DataGridColumn klasy.

Column, klasa Opis
BoundColumn Kolumna powiązana z polem w źródle danych. Wyświetla on każdy element w polu jako tekst. Jest to domyślny typ kolumny dla kontrolki DataGrid .
ButtonColumn Kolumna, która wyświetla przycisk polecenia dla każdego elementu w kolumnie. Umożliwia to utworzenie kolumny niestandardowych kontrolek przycisków, takich jak dodawanie lub usuwanie przycisków.
EditCommandColumn Kolumna zawierająca polecenia edycji dla każdego elementu w kolumnie.
HyperLinkColumn Kolumna, która wyświetla każdy element w kolumnie jako hiperlink. Zawartość kolumny może być powiązana z polem w źródle danych lub do tekstu statycznego.
TemplateColumn Kolumna, która wyświetla każdy element w kolumnie zgodnie z określonym szablonem. Dzięki temu można kontrolować zawartość kolumny, na przykład wyświetlać obrazy.

Uwaga

Klasa DataGridColumn jest klasą bazową dla wymienionych klas kolumn. Nie jest on używany bezpośrednio w kolekcji DataGridColumnCollection .

Konstruktory

DataGridColumnCollection(DataGrid, ArrayList)

Inicjuje nowe wystąpienie klasy DataGridColumnCollection.

Właściwości

Count

Pobiera liczbę kolumn w kolekcji DataGridColumnCollection .

IsReadOnly

Pobiera wartość wskazującą, czy kolumny w DataGridColumnCollection kolekcji można modyfikować.

IsSynchronized

Pobiera wartość wskazującą, czy dostęp do DataGridColumnCollection kolekcji jest synchronizowany (bezpieczny wątek).

Item[Int32]

DataGridColumnPobiera obiekt kolumny pochodnej DataGridColumnCollection z kolekcji w określonym indeksie.

SyncRoot

Pobiera obiekt, który może służyć do synchronizowania dostępu do DataGridColumnCollection kolekcji.

Metody

Add(DataGridColumn)

Dołącza określony DataGridColumnobiekt kolumny pochodnej na końcu DataGridColumnCollection kolekcji.

AddAt(Int32, DataGridColumn)

DataGridColumnWstawia obiekt kolumny pochodnej w kolekcji DataGridColumnCollection w określonym indeksie.

Clear()

Usuwa wszystkie DataGridColumnobiekty kolumn pochodnych z kolekcji DataGridColumnCollection .

CopyTo(Array, Int32)

Kopiuje elementy z DataGridColumnCollection kolekcji do określonej Arraywartości , zaczynając od określonego indeksu w obiekcie Array.

Equals(Object)

Określa, czy dany obiekt jest taki sam, jak bieżący obiekt.

(Odziedziczone po Object)
GetEnumerator()

IEnumerator Zwraca interfejs zawierający wszystkie DataGridColumnobiekty kolumn pochodnych w kolekcjiDataGridColumnCollection.

GetHashCode()

Służy jako domyślna funkcja skrótu.

(Odziedziczone po Object)
GetType()

Type Pobiera wartość bieżącego wystąpienia.

(Odziedziczone po Object)
IndexOf(DataGridColumn)

Zwraca indeks określonego DataGridColumnobiektu kolumny pochodnej z kolekcji DataGridColumnCollection .

MemberwiseClone()

Tworzy płytkią kopię bieżącego Objectelementu .

(Odziedziczone po Object)
Remove(DataGridColumn)

Usuwa określony DataGridColumnobiekt kolumny pochodnej z kolekcji DataGridColumnCollection .

RemoveAt(Int32)

Usuwa obiekt kolumny pochodnej DataGridColumnDataGridColumnCollection z kolekcji w określonym indeksie.

ToString()

Zwraca ciąg reprezentujący bieżący obiekt.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IStateManager.IsTrackingViewState

Pobiera wartość wskazującą, czy kolekcja śledzi zmiany stanu widoku.

IStateManager.LoadViewState(Object)

Ładuje wcześniej zapisany stan.

IStateManager.SaveViewState()

Zwraca obiekt zawierający zmiany stanu.

IStateManager.TrackViewState()

Rozpoczyna śledzenie zmian stanu.

Metody rozszerzania

Cast<TResult>(IEnumerable)

Rzutuje elementy elementu IEnumerable na określony typ.

OfType<TResult>(IEnumerable)

Filtruje elementy IEnumerable elementu na podstawie określonego typu.

AsParallel(IEnumerable)

Umożliwia równoległość zapytania.

AsQueryable(IEnumerable)

Konwertuje element IEnumerable na .IQueryable

Dotyczy

Zobacz też