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 的順序,顯示為 控制項中的資料行。 此選項提供方便的方式來顯示資料來源中的每個欄位;不過,您對於自動產生的資料列欄位的顯示方式或行為有所限制。

您可以藉由將 屬性設定 AutoGenerateColumnsfalse ,然後建立自訂 Columns 集合,來手動定義資料列欄位,而不是讓 GridView 控制項自動產生資料列欄位。 除了系結資料列欄位之外,您也可以根據您自己的自訂定義範本,顯示按鈕資料列欄位、核取方塊資料列欄位、命令欄位、超連結資料列欄位、影像欄位或資料列欄位。

您也可以將明確宣告的資料列欄位與自動產生的資料列欄位結合。 使用兩者時,會先轉譯明確宣告的資料列欄位,後面接著自動產生的資料列欄位。 自動產生的系結資料列欄位不會新增至 Columns 集合。 如需詳細資訊,請參閱Columns

如果您將此屬性設定為 true ,並將 屬性設定 ItemType 為模型類型, DynamicField 則會產生控制項。 如果您未設定 ItemType 屬性, BoundField 則會產生控制項。 如果您不想要 DynamicField 控制項,您有下列選項:

  • ColumnsGenerator 事件處理常式中的 屬性設定為 Page_Loadnull 。 在此情況下, BoundField 會產生控制項。

  • 撰寫自訂程式碼,藉由建立和指派您自己的 ColumnsGenerator 類別,並將其實例指派給 控制項,以自動產生欄位。

  • AutoGenerateColumns 設定為 false。 在此情況下,不會產生任何欄位,而且您必須使用 或 ImageField 之類的 BoundField 控制項手動指定欄位。

  • 請勿設定 ItemType 屬性。 在此情況下, BoundField 會產生控制項。

適用於

另請參閱