Språk

DataGrid.AutoGenerateColumns Egenskap

Definition

Hämtar eller anger ett värde som anger om BoundColumn objekt skapas automatiskt och visas i DataGrid kontrollen för varje fält i datakällan.

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

Egenskapsvärde

true om BoundColumn objekt skapas och visas automatiskt, annars false. Standardvärdet är true.

Exempel

Följande kodexempel visar hur du använder AutoGenerateColumns egenskapen för att automatiskt skapa ett BoundColumn objekt för varje fält i datakällan.

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

Kommentarer

Använd den här egenskapen för att automatiskt skapa ett BoundColumn objekt för varje fält i datakällan. Varje fält återges sedan som en kolumn i DataGrid kontrollen i den ordning som fälten visas i datakällan.

Alla datatyper kan inte bindas till DataGrid kontrollen. Om ett fält innehåller en datatyp som inte stöds skapas ingen kolumn för det fältet. Om datakällan bara innehåller en kolumn med en datatyp som inte stöds genereras ett undantag. I följande tabell visas de datatyper som kan bindas till kontrollen.

Datatyp Description
Primitivtyper En primitiv datatyp, till exempel System.Int32, Char, Doubleoch så vidare. En fullständig lista finns i Type.IsPrimitive.
String Ett System.String objekt.
DateTime Ett System.DateTime objekt.
Decimal Ett System.Decimal objekt.

Note

Explicit deklarerade kolumner kan användas tillsammans med automatiskt genererade kolumner. När du använder båda återges explicit deklarerade kolumner först, följt av de automatiskt genererade kolumnerna. Automatiskt genererade kolumner läggs inte till i Columns samlingen.

Gäller för

Se även