Udostępnij za pośrednictwem


DataGrid.AutoGenerateColumns Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy BoundColumn obiekty są tworzone automatycznie i wyświetlane w kontrolce DataGrid dla każdego pola w źródle danych.

public:
 virtual property bool AutoGenerateColumns { bool get(); void set(bool value); };
public virtual bool AutoGenerateColumns { get; set; }
member this.AutoGenerateColumns : bool with get, set
Public Overridable Property AutoGenerateColumns As Boolean

Wartość właściwości

true jeśli BoundColumn obiekty są automatycznie tworzone i wyświetlane; w przeciwnym razie false. Wartość domyślna to true.

Przykłady

Poniższy przykład kodu pokazuje, jak za pomocą AutoGenerateColumns właściwości automatycznie utworzyć BoundColumn obiekt dla każdego pola w źródle danych.

<%@ 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 language="C#" runat="server">
 
      ICollection CreateDataSource() 
      {
         DataTable dt = new DataTable();
         DataRow dr;
 
         dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
         dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
         dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
 
         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) 
      {
   
         if (!IsPostBack) 
         {
            // Need to load this data only once.
            ItemsGrid.DataSource= CreateDataSource();
            ItemsGrid.DataBind();
         }
      }
 
   </script>
 
<head runat="server">
    <title>DataGrid AutoGenerateColumns Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid AutoGenerateColumns Example</h3>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="true"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

      </asp:DataGrid>
 
   </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 language="VB" runat="server">
     Function CreateDataSource() As ICollection
        Dim dt As New DataTable()
        Dim dr As DataRow
        
        dt.Columns.Add(New DataColumn("IntegerValue", GetType(Int32)))
        dt.Columns.Add(New DataColumn("StringValue", GetType(String)))
        dt.Columns.Add(New DataColumn("CurrencyValue", GetType(Double)))
        
        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 New DataView(dt)
        Return dv
    End Function 'CreateDataSource


    Sub Page_Load(sender As Object, e As EventArgs)
        
        If Not IsPostBack Then
            ' Need to load this data only once.
            ItemsGrid.DataSource = CreateDataSource()
            ItemsGrid.DataBind()
        End If
    End Sub 'Page_Load
 
   </script>
 
<head runat="server">
    <title>DataGrid AutoGenerateColumns Example</title>
</head>
<body>
 
   <form id="form1" runat="server">
 
      <h3>DataGrid AutoGenerateColumns Example</h3>
 
      <b>Product List</b>
 
      <asp:DataGrid id="ItemsGrid"
           BorderColor="black"
           BorderWidth="1"
           CellPadding="3"
           AutoGenerateColumns="true"
           runat="server">

         <HeaderStyle BackColor="#00aaaa">
         </HeaderStyle>

      </asp:DataGrid>
 
   </form>
 
</body>
</html>

Uwagi

Użyj tej właściwości, aby automatycznie utworzyć BoundColumn obiekt dla każdego pola w źródle danych. Każde pole jest następnie renderowane jako kolumna w kontrolce DataGrid w kolejności wyświetlania pól w źródle danych.

Nie wszystkie typy danych mogą być powiązane z kontrolką DataGrid . Jeśli pole zawiera nieobsługiwany typ danych, kolumna nie zostanie utworzona dla tego pola. Jeśli źródło danych zawiera tylko jedną kolumnę z nieobsługiwanym typem danych, zgłaszany jest wyjątek. W poniższej tabeli przedstawiono typy danych, które mogą być powiązane z kontrolką.

Typ danych Opis
Typy pierwotne Typ danych pierwotnych, taki jak System.Int32, Char, Doublei tak dalej. Aby uzyskać pełną listę, zobacz Type.IsPrimitive.
Ciąg Obiekt System.String.
DateTime Obiekt System.DateTime.
Liczba dziesiętna Obiekt System.Decimal.

Uwaga

Jawnie zadeklarowane kolumny mogą być używane w połączeniu z kolumnami generowanymi automatycznie. W przypadku korzystania z obu kolumn jawnie zadeklarowane zostaną najpierw renderowane, a następnie kolumny generowane automatycznie. Kolumny generowane automatycznie nie są dodawane do kolekcji Columns .

Dotyczy

Zobacz też