GridView.AutoGenerateColumns GridView.AutoGenerateColumns GridView.AutoGenerateColumns GridView.AutoGenerateColumns Property

定義

データ ソース内の各フィールドについてバインドされたフィールドが自動作成されるかどうかを示す値を取得または設定します。Gets or sets a value indicating whether bound fields are automatically created for each field in the data source.

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。それ以外の場合は falsetrue to automatically create bound fields for each field in the data source; otherwise, false. 既定値は、true です。The default is true.

次の例では、 AutoGenerateColumnsプロパティを使用して、データソースの各フィールドのGridViewコントロールにバインドされたフィールド列を自動的に作成する方法を示します。The following example demonstrates how to use the AutoGenerateColumns property to automatically create bound field columns in a GridView control for each field in the data source.

<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>

注釈

プロパティがにtrue設定されているAutoGeneratedField場合、データソースの各フィールドに対してオブジェクトが自動的に作成されます。 AutoGenerateColumnsWhen the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. 各フィールドは、データソースにフィールドが表示GridViewされる順序で、コントロールの列として表示されます。Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. このオプションを使用すると、データソース内のすべてのフィールドを簡単に表示できます。ただし、自動的に生成された列フィールドを表示または動作させる方法を制限することはできません。This option provides a convenient way to display every field in the data source; however, you have limited control of how an automatically generated column field is displayed or behaves.

列フィールドを自動的GridViewに生成するのではなく、 AutoGenerateColumnsプロパティをにfalse設定してからカスタムColumnsコレクションを作成することによって、列フィールドを手動で定義できます。Instead of letting the GridView control automatically generate the column fields, you can manually define the column fields by setting the AutoGenerateColumns property to false and then creating a custom Columns collection. バインドされた列フィールドに加えて、ボタンの列フィールド、チェックボックスの列フィールド、コマンドフィールド、ハイパーリンク列フィールド、画像フィールド、または独自のカスタム定義のテンプレートに基づいた列フィールドを表示することもできます。In addition to bound column fields, you can also display a button column field, a check box column field, a command field, a hyperlink column field, an image field, or a column field based on your own custom-defined template.

明示的に宣言された列フィールドを、自動的に生成された列フィールドと組み合わせることもできます。You can also combine explicitly declared column fields with automatically generated column fields. 両方を使用する場合は、明示的に宣言された列フィールドが最初に表示され、その後に自動的に生成された列フィールドが続きます。When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. 自動的に生成されたバインド列フィールドはColumns 、コレクションに追加されません。Automatically generated bound column fields are not added to the Columns collection. 詳細については、「Columns」を参照してください。For more information, see Columns.

このプロパティをにtrue設定し、 ItemTypeプロパティをモデル型に設定するとDynamicField 、コントロールが生成されます。If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. ItemTypeプロパティを設定しなかった場合はBoundField 、コントロールが生成されます。If you do not set the ItemType property, BoundField controls are generated. コントロールが不要なDynamicField場合は、次のオプションがあります。If you do not want DynamicField controls, you have the following options:

  • イベントハンドラー ColumnsGeneratornull 、プロパティをに設定します。 Page_LoadSet the ColumnsGenerator property to null in the Page_Load event handler. その場合、 BoundFieldコントロールが生成されます。In that case, BoundField controls are generated.

  • 独自ColumnsGeneratorのクラスを作成して割り当て、そのインスタンスをコントロールに割り当てることで、フィールドを自動的に生成するカスタムコードを作成します。Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.

  • AutoGenerateColumnsfalse に設定します。Set AutoGenerateColumns to false. このBoundField場合、フィールドは生成されません。また、やImageFieldなどのコントロールを使用してフィールドを手動で指定する必要があります。In that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.

  • ItemType プロパティを設定しないでください。Do not set the ItemType property. その場合、 BoundFieldコントロールが生成されます。In that case, BoundField controls are generated.

適用対象

こちらもご覧ください