GridView.AutoGenerateColumns 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置一个值,该值指示是否为数据源中的每个字段自动创建绑定字段。
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_Load
将 ColumnsGenerator 属性设置为null
。 在这种情况下, BoundField 将生成控件。编写自定义代码,通过创建并分配自己的 ColumnsGenerator 类并将其实例分配给控件来自动生成字段。
将 AutoGenerateColumns 设置为
false
。 在这种情况下,不会生成任何字段,并且必须使用 或 ImageField等BoundField控件手动指定字段。不要设置 ItemType 属性。 在这种情况下, BoundField 将生成控件。