DataGrid.AutoGenerateColumns Vlastnost

Definice

Získá nebo nastaví hodnotu, která označuje, zda BoundColumn jsou objekty automaticky vytvořeny a zobrazeny v ovládacím DataGrid prvku pro každé pole ve zdroji dat.

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

Hodnota vlastnosti

Boolean

true pokud BoundColumn jsou objekty vytvořeny a zobrazeny automaticky; falsev opačném případě . Výchozí hodnota je true.

Příklady

Následující příklad kódu ukazuje, jak použít AutoGenerateColumns vlastnost k automatickému BoundColumn vytvoření objektu pro každé pole ve zdroji dat.

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

Poznámky

Pomocí této vlastnosti můžete automaticky vytvořit BoundColumn objekt pro každé pole ve zdroji dat. Každé pole se pak v ovládacím DataGrid prvku vykreslí jako sloupec v pořadí, v jakém se pole zobrazují ve zdroji dat.

Ne všechny datové typy mohou být vázány DataGrid na ovládací prvek. Pokud pole obsahuje nepodporovaný datový typ, sloupec se pro toto pole nevytvořil. Pokud zdroj dat obsahuje pouze jeden sloupec s nepodporovaným datovým typem, vyvolá se výjimka. Následující tabulka uvádí datové typy, které lze svázat s ovládacím prvku.

Typ dat Popis
Primitiva Primitivní datový typ, například System.Int32, Char, Doubleatd. Úplný seznam najdete v tématu Type.IsPrimitive.
Řetězec Objekt System.String .
DateTime Objekt System.DateTime .
Decimal Objekt System.Decimal .

Poznámka

Explicitně deklarované sloupce lze použít ve spojení s automaticky generovanými sloupci. Při použití obou se explicitně deklarované sloupce vykreslí jako první a pak automaticky generované sloupce. Do kolekce se nepřidají Columns automaticky generované sloupce.

Platí pro

Viz také