다음을 통해 공유


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

속성 값

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 표시되는 순서대로 컨트롤의 열로 표시됩니다. 이 옵션은 데이터 원본의 모든 필드를 표시하는 편리한 방법을 제공합니다. 그러나 자동으로 생성된 열 필드가 표시되거나 동작하는 방식을 제한적으로 제어할 수 있습니다.

컨트롤이 GridView 열 필드를 자동으로 생성하도록 하는 대신 속성을 설정한 AutoGenerateColumns 다음 사용자 지정 Columns 컬렉션을 만들어 열 필드를 수동으로 정의할 false 수 있습니다. 바인딩된 열 필드 외에도 단추 열 필드, 확인란 열 필드, 명령 필드, 하이퍼링크 열 필드, 이미지 필드 또는 사용자 지정 정의 템플릿을 기반으로 하는 열 필드를 표시할 수도 있습니다.

명시적으로 선언된 열 필드를 자동으로 생성된 열 필드와 결합할 수도 있습니다. 둘 다 사용되는 경우 명시적으로 선언된 열 필드가 먼저 렌더링되고 그 뒤에 자동으로 생성된 열 필드가 표시됩니다. 자동으로 생성된 바인딩된 열 필드는 컬렉션에 Columns 추가되지 않습니다. 자세한 내용은 Columns를 참조하세요.

이 속성을 true 설정하고 속성을 모델 형식 DynamicField 으로 설정 ItemType 하면 컨트롤이 생성됩니다. 속성을 BoundField 설정 ItemType 하지 않으면 컨트롤이 생성됩니다. 컨트롤을 사용하지 않으려 DynamicField 면 다음과 같은 옵션이 있습니다.

  • ColumnsGenerator 이벤트 처리기에서 Page_Load 속성을 null 설정합니다. 이 경우 BoundField 컨트롤이 생성됩니다.

  • 사용자 지정 코드를 작성하여 고유한 ColumnsGenerator 클래스를 만들고 할당하고 해당 클래스의 인스턴스를 컨트롤에 할당하여 필드를 자동으로 생성합니다.

  • AutoGenerateColumnsfalse로 설정합니다. 이 경우 필드가 생성되지 않으며, 컨트롤(예 BoundField : 또는 ImageField.)을 사용하여 필드를 수동으로 지정해야 합니다.

  • ItemType 속성은 설정하지 않습니다. 이 경우 BoundField 컨트롤이 생성됩니다.

적용 대상

추가 정보