Поделиться через


DataGrid.AutoGenerateColumns Свойство

Определение

Получает или задает значение, показывающее, создаются ли объекты BoundColumn автоматически и отображаются ли они в элементе управления DataGrid для каждого поля в источнике данных.

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

Значение свойства

Значение true, если объекты BoundColumn автоматически создаются и отображаются; в противном случае — значение false. Значение по умолчанию — true.

Примеры

В следующем примере кода показано, как использовать AutoGenerateColumns свойство для автоматического BoundColumn создания объекта для каждого поля в источнике данных.

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

Комментарии

Используйте это свойство для автоматического BoundColumn создания объекта для каждого поля в источнике данных. Затем каждое поле отображается в виде столбца в элементе DataGrid управления в том порядке, в который поля отображаются в источнике данных.

Не все типы данных могут быть привязаны к элементу DataGrid управления . Если поле содержит неподдерживаемый тип данных, столбец для этого поля не создается. Если источник данных содержит только один столбец с неподдерживаемого типа данных, создается исключение. В следующей таблице показаны типы данных, которые можно привязать к элементу управления .

Тип данных Описание
Примитивы Примитивный тип данных, например System.Int32, Char, Doubleи т. д. Полный список см. в разделе Type.IsPrimitive.
Строка Объект System.String.
Дата/время Объект System.DateTime.
Decimal Объект System.Decimal.

Примечание

Явно объявленные столбцы могут использоваться в сочетании с автоматически созданными столбцами. При использовании обоих столбцов сначала будут отображаться явно объявленные столбцы, а затем автоматически созданные столбцы. Автоматически созданные столбцы не добавляются в коллекцию Columns .

Применяется к

См. также раздел