GridView.AutoGenerateColumns Свойство

Определение

Возвращает или задает значение, показывающее, будут ли граничные поля автоматически созданы для каждого поля источника данных.Gets or sets a value indicating whether bound fields are automatically created for each field in the data source.

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 to automatically create bound fields for each field in the data source; otherwise, false. Значение по умолчанию — true.The default is true.

Примеры

В следующем примере показано, как использовать AutoGenerateColumns свойство для автоматического создания привязанных столбцов полей GridView в элементе управления для каждого поля в источнике данных.The following example demonstrates how to use the AutoGenerateColumns property to automatically create bound field columns in a GridView control for each field in the data source.

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

Комментарии

Если свойство имеет trueзначение, AutoGeneratedField объект автоматически создается для каждого поля в источнике данных. AutoGenerateColumnsWhen the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. Каждое поле затем отображается как столбец в GridView элементе управления в том порядке, в котором эти поля отображаются в источнике данных.Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. Этот параметр предоставляет удобный способ для вывода каждого поля в источнике данных. Однако у вас есть ограниченный контроль над тем, как автоматически создаваемое поле столбца отображается или ведет себя.This option provides a convenient way to display every field in the data source; however, you have limited control of how an automatically generated column field is displayed or behaves.

Вместо того, чтобы GridView AutoGenerateColumns false позволить элементу управления автоматически создавать поля столбцов, можно вручную определить поля столбцов, задав свойству значение, а затем создав пользовательскую Columns коллекцию.Instead of letting the GridView control automatically generate the column fields, you can manually define the column fields by setting the AutoGenerateColumns property to false and then creating a custom Columns collection. В дополнение к полям привязанных столбцов можно также отобразить поле столбца кнопки, поле столбца флажка, поле команды, поле столбца гиперссылки, поле изображения или поле столбца на основе пользовательского шаблона.In addition to bound column fields, you can also display a button column field, a check box column field, a command field, a hyperlink column field, an image field, or a column field based on your own custom-defined template.

Кроме того, можно сочетать явно объявленные поля столбцов с автоматически создаваемыми полями столбцов.You can also combine explicitly declared column fields with automatically generated column fields. При использовании обоих типов сначала выводятся явно объявленные поля столбцов, за которыми следуют автоматически создаваемые поля столбцов.When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. Автоматически созданные поля привязанных столбцов не добавляются в Columns коллекцию.Automatically generated bound column fields are not added to the Columns collection. Для получения дополнительной информации см. Columns.For more information, see Columns.

Если задать для true этого свойства значение и ItemType задать для свойства тип модели, DynamicField то создаются элементы управления.If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. Если ItemType свойство не задано, BoundField элементы управления создаются.If you do not set the ItemType property, BoundField controls are generated. Если вы не хотите DynamicField использовать элементы управления, доступны следующие варианты:If you do not want DynamicField controls, you have the following options:

  • Задайте для ColumnsGenerator null свойства значение в Page_Load обработчике событий.Set the ColumnsGenerator property to null in the Page_Load event handler. В этом случае BoundField создаются элементы управления.In that case, BoundField controls are generated.

  • Напишите пользовательский код для автоматического создания полей, создав и назначив собственный ColumnsGenerator класс и назначив его экземпляр элементу управления.Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.

  • Присвойте свойству AutoGenerateColumns значение false.Set AutoGenerateColumns to false. В этом случае поля не создаются, и необходимо вручную указать поля с помощью таких элементов управления, как BoundField или ImageField.In that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.

  • Не задавайте свойство ItemType.Do not set the ItemType property. В этом случае BoundField создаются элементы управления.In that case, BoundField controls are generated.

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

Дополнительно