Freigeben über


DataGrid.AutoGenerateColumns-Eigenschaft

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.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

Syntax

'Declaration
Public Overridable Property AutoGenerateColumns As Boolean
'Usage
Dim instance As DataGrid
Dim value As Boolean

value = instance.AutoGenerateColumns

instance.AutoGenerateColumns = value
public virtual bool AutoGenerateColumns { get; set; }
public:
virtual property bool AutoGenerateColumns {
    bool get ();
    void set (bool value);
}
/** @property */
public boolean get_AutoGenerateColumns ()

/** @property */
public void set_AutoGenerateColumns (boolean value)
public function get AutoGenerateColumns () : boolean

public function set AutoGenerateColumns (value : boolean)

Eigenschaftenwert

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

Hinweise

Erstellen Sie mit dieser Eigenschaft für jedes Feld in der Datenquelle automatisch ein BoundColumn-Objekt. Die einzelnen Felder werden anschließend in der Reihenfolge, in der sie in der Datenquelle enthalten sind, als Spalte im DataGrid-Steuerelement dargestellt.

Es können nicht alle Datentypen 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. In der folgenden Tabelle werden die Datentypen aufgelistet, die an das Steuerelement gebunden werden können.

Datentyp

Beschreibung

Primitives

Ein einfacher Datentyp, wie System.Int32, Char, Double usw. 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 zusammen mit automatisch erstellten Spalten verwendet werden. Wenn Sie beide Spaltenarten verwenden, werden explizit deklarierte Spalten zuerst und anschließend die automatisch erstellten Spalten dargestellt. Automatisch generierte Spalten werden der Columns-Auflistung nicht hinzugefügt.

Beispiel

Das folgende Codebeispiel veranschaulicht, wie mit der AutoGenerateColumns-Eigenschaft automatisch ein BoundColumn-Objekt für jedes Feld in der Datenquelle erstellt wird.

<%@ Page Language="VB" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>

   <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>
 
<body>
 
   <form 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="C#" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>

   <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>
 
<body>
 
   <form 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="JScript" AutoEventWireup="True" %>
<%@ Import Namespace="System.Data" %>
 
<html>

   <script language="JScript" runat="server">
 
      function CreateDataSource () : ICollection
      {
        var dt : DataTable = new DataTable();
        var dr : DataRow;
 
        dt.Columns.Add(new DataColumn("IntegerValue", Int32));
        dt.Columns.Add(new DataColumn("StringValue", System.String));
        dt.Columns.Add(new DataColumn("CurrencyValue", double));
 
         for (var i : int = 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);
         }
  
         var dv : DataView = new DataView(dt);
         return dv;
      }
   
      function Page_Load(sender, e : EventArgs) 
      {  
         if (!IsPostBack) 
         {
            // Need to load this data only once.
            ItemsGrid.DataSource= CreateDataSource();
            ItemsGrid.DataBind();
         }
      }
 
   </script>
 
<body>
 
   <form 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>

Plattformen

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

Siehe auch

Referenz

DataGrid-Klasse
DataGrid-Member
System.Web.UI.WebControls-Namespace
BoundColumn-Klasse
Columns
Type.IsPrimitive
System.String
System.DateTime
System.Decimal