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


GridView.AutoGenerateColumns Свойство

Определение

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

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 для автоматического создания граничных полей для каждого поля в источнике данных; в противном случае — false. Значение по умолчанию — true.

Примеры

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

<asp:sqldatasource id="CustomersSource"
  selectcommand="SELECT CustomerID, CompanyName, FirstName, LastName FROM SalesLT.Customer"
  connectionstring="<%$ ConnectionStrings:AWLTConnectionString %>" 
  runat="server"/>

<asp:gridview id="CustomersGridView" 
  datasourceid="CustomersSource" 
  autogeneratecolumns="False"
  emptydatatext="No data available." 
  allowpaging="True" 
  runat="server" DataKeyNames="CustomerID">
    <Columns>
        <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
            InsertVisible="False" ReadOnly="True" SortExpression="CustomerID" />
        <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
            SortExpression="CompanyName" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
            SortExpression="FirstName" />
        <asp:BoundField DataField="LastName" HeaderText="LastName" 
            SortExpression="LastName" />
    </Columns>
</asp:gridview>
<asp:sqldatasource id="CustomersSource"
  selectcommand="SELECT CustomerID, CompanyName, FirstName, LastName FROM SalesLT.Customer"
  connectionstring="<%$ ConnectionStrings:AWLTConnectionString %>" 
  runat="server"/>

<asp:gridview id="CustomersGridView" 
  datasourceid="CustomersSource" 
  autogeneratecolumns="False"
  emptydatatext="No data available." 
  allowpaging="True" 
  runat="server" DataKeyNames="CustomerID">
    <Columns>
        <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
            InsertVisible="False" ReadOnly="True" SortExpression="CustomerID" />
        <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" 
            SortExpression="CompanyName" />
        <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
            SortExpression="FirstName" />
        <asp:BoundField DataField="LastName" HeaderText="LastName" 
            SortExpression="LastName" />
    </Columns>
</asp:gridview>

Комментарии

Если свойству AutoGenerateColumns присвоено значение true, AutoGeneratedField объект автоматически создается для каждого поля в источнике данных. Затем каждое поле отображается в виде столбца в элементе GridView управления в том порядке, в котором поля отображаются в источнике данных. Этот параметр предоставляет удобный способ отображения каждого поля в источнике данных; однако вы имеете ограниченный контроль над отображением или поведением автоматически создаваемого поля столбца.

Вместо того, чтобы позволить элементу GridView управления автоматически создавать поля столбцов, можно вручную определить поля столбцов, задав AutoGenerateColumns для свойства значение false и создав пользовательскую Columns коллекцию. В дополнение к полям привязанного столбца можно также отобразить поле столбца кнопки, поле столбца флажка, командное поле, поле столбца гиперссылки, поле изображения или поле столбца на основе пользовательского шаблона.

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

Если для этого свойства задано значение true , а свойству ItemType — тип модели, DynamicField создаются элементы управления. Если свойство не задано ItemType , BoundField создаются элементы управления. Если вам не нужны DynamicField элементы управления, доступны следующие варианты.

  • Присвойте свойству ColumnsGenerator значение null в обработчике Page_Load событий. В этом случае BoundField создаются элементы управления.

  • Напишите пользовательский код для автоматического создания полей, создав и назначив собственный ColumnsGenerator класс и назначив его экземпляр элементу управления.

  • Задайте для параметра AutoGenerateColumns значение false. В этом случае поля не создаются, и необходимо вручную указать поля с помощью таких элементов управления, как BoundField или ImageField.

  • Не задавайте свойство ItemType. В этом случае BoundField создаются элементы управления.

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

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