DataGrid.AutoGenerateColumns Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob BoundColumn-Objekte im DataGrid-Steuerelement für jedes Feld in der Datenquelle automatisch erstellt und angezeigt werden, oder legt diesen fest.

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

Eigenschaftswert

true, wenn BoundColumn-Objekte automatisch erstellt und angezeigt werden, andernfalls false. Der Standardwert ist true.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie Die AutoGenerateColumns -Eigenschaft verwendet wird, um automatisch ein BoundColumn Objekt für jedes Feld in der Datenquelle zu erstellen.

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

Hinweise

Verwenden Sie diese Eigenschaft, um automatisch ein BoundColumn Objekt für jedes Feld in der Datenquelle zu erstellen. Jedes Feld wird dann als Spalte im Steuerelement in der DataGrid Reihenfolge gerendert, in der die Felder in der Datenquelle angezeigt werden.

Nicht alle Datentypen können an das DataGrid Steuerelement gebunden werden. Wenn ein Feld einen nicht unterstützten Datentyp enthält, wird für dieses Feld keine Spalte erstellt. Wenn die Datenquelle nur eine Spalte mit einem nicht unterstützten Datentyp enthält, wird eine Ausnahme ausgelöst. Die folgende Tabelle zeigt die Datentypen, die an das Steuerelement gebunden werden können.

Datentyp BESCHREIBUNG
Grundtypen Ein primitiver Datentyp, z System.Int32. B. , Char, Doubleusw. Eine vollständige Liste finden Sie unter Type.IsPrimitive.
String Ein System.String-Objekt.
Datetime Ein System.DateTime-Objekt.
Decimal Ein System.Decimal-Objekt.

Hinweis

Explizit deklarierte Spalten können in Verbindung mit automatisch generierten Spalten verwendet werden. Bei Verwendung beider werden explizit deklarierte Spalten zuerst gerendert, gefolgt von den automatisch generierten Spalten. Automatisch generierte Spalten werden der Columns Auflistung nicht hinzugefügt.

Gilt für:

Weitere Informationen