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 的順序,顯示為 控制項中的資料行。 此選項提供方便的方式來顯示資料來源中的每個欄位;不過,您對於自動產生的資料列欄位的顯示方式或行為有所限制。
您可以藉由將 屬性設定 AutoGenerateColumns 為 false
,然後建立自訂 Columns
集合,來手動定義資料列欄位,而不是讓 GridView 控制項自動產生資料列欄位。 除了系結資料列欄位之外,您也可以根據您自己的自訂定義範本,顯示按鈕資料列欄位、核取方塊資料列欄位、命令欄位、超連結資料列欄位、影像欄位或資料列欄位。
您也可以將明確宣告的資料列欄位與自動產生的資料列欄位結合。 使用兩者時,會先轉譯明確宣告的資料列欄位,後面接著自動產生的資料列欄位。 自動產生的系結資料列欄位不會新增至 Columns 集合。 如需詳細資訊,請參閱Columns。
如果您將此屬性設定為 true
,並將 屬性設定 ItemType 為模型類型, DynamicField 則會產生控制項。 如果您未設定 ItemType 屬性, BoundField 則會產生控制項。 如果您不想要 DynamicField 控制項,您有下列選項:
將 ColumnsGenerator 事件處理常式中的 屬性設定為
Page_Load
null
。 在此情況下, BoundField 會產生控制項。撰寫自訂程式碼,藉由建立和指派您自己的 ColumnsGenerator 類別,並將其實例指派給 控制項,以自動產生欄位。
將 AutoGenerateColumns 設定為
false
。 在此情況下,不會產生任何欄位,而且您必須使用 或 ImageField 之類的 BoundField 控制項手動指定欄位。請勿設定 ItemType 屬性。 在此情況下, BoundField 會產生控制項。