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 列,其顺序与字段在数据源中的显示顺序相同。 此选项提供了一种显示数据源中每个字段的便捷方式;但是,你对自动生成的列字段的显示方式或行为控制有限。

可以通过将 属性false设置为 AutoGenerateColumns ,然后创建自定义Columns集合来手动定义列字段,而不是让GridView控件自动生成列字段。 除了绑定列字段外,还可以根据自己的自定义模板显示按钮列字段、复选框列字段、命令字段、超链接列字段、图像字段或列字段。

还可以将显式声明的列字段与自动生成的列字段组合在一起。 使用这两个字段时,首先呈现显式声明的列字段,然后呈现自动生成的列字段。 自动生成的绑定列字段不会添加到集合中 Columns 。 有关详细信息,请参阅 Columns

如果将此属性设置为 true ,并将 属性设置为 ItemType 模型类型, DynamicField 则会生成控件。 如果未设置 ItemType 属性, BoundField 则会生成控件。 如果不需要 DynamicField 控件,可使用以下选项:

  • 在事件处理程序中Page_LoadColumnsGenerator 属性设置为 null 。 在这种情况下, BoundField 将生成控件。

  • 编写自定义代码,通过创建并分配自己的 ColumnsGenerator 类并将其实例分配给控件来自动生成字段。

  • AutoGenerateColumns 设置为 false。 在这种情况下,不会生成任何字段,并且必须使用 或 ImageFieldBoundField控件手动指定字段。

  • 不要设置 ItemType 属性。 在这种情况下, BoundField 将生成控件。

适用于

另请参阅