次の方法で共有


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>

注釈

プロパティが AutoGenerateColumnstrue設定されている場合、データ ソース内の AutoGeneratedField フィールドごとにオブジェクトが自動的に作成されます。 その後、各フィールドは、フィールドがデータ ソースに GridView 表示される順序で、コントロール内の列として表示されます。 このオプションを使用すると、データ ソース内のすべてのフィールドを簡単に表示できます。ただし、自動的に生成される列フィールドの表示方法や動作の制御は制限されています。

コントロールに列フィールドをGridView自動的に生成させる代わりに、 プロパティfalseを に設定AutoGenerateColumnsし、カスタム Columns コレクションを作成することで、列フィールドを手動で定義できます。 連結列フィールドに加えて、独自のユーザー定義テンプレートに基づいて、ボタン列フィールド、チェック ボックス列フィールド、コマンド フィールド、ハイパーリンク列フィールド、画像フィールド、または列フィールドを表示することもできます。

明示的に宣言された列フィールドと、自動的に生成された列フィールドを組み合わせることもできます。 両方を使用すると、明示的に宣言された列フィールドが最初にレンダリングされ、その後に自動的に生成された列フィールドが表示されます。 自動的に生成されたバインド列フィールドはコレクションに Columns 追加されません。 詳細については、「Columns」を参照してください。

このプロパティを に true 設定し、 プロパティを ItemType モデル型に設定すると、 DynamicField コントロールが生成されます。 プロパティを ItemType 設定しない場合は、 BoundField コントロールが生成されます。 コントロールが不要 DynamicField な場合は、次のオプションがあります。

  • イベント ハンドラーで プロパティColumnsGeneratorを にPage_Loadnull設定します。 その場合、 BoundField コントロールが生成されます。

  • 独自 ColumnsGenerator のクラスを作成して割り当て、そのインスタンスをコントロールに割り当てることで、フィールドを自動的に生成するカスタム コードを記述します。

  • AutoGenerateColumnsfalse に設定します。 その場合、フィールドは生成されません。また、 や ImageFieldなどのBoundFieldコントロールを使用してフィールドを手動で指定する必要があります。

  • ItemType プロパティを設定しないでください。 その場合、 BoundField コントロールが生成されます。

適用対象

こちらもご覧ください