Compartilhar via


GridView.AutoGenerateColumns Propriedade

Definição

Obtém ou define um valor que indica se os campos associados são criados automaticamente para cada campo na fonte de dados.

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

Valor da propriedade

Boolean

true para criar automaticamente os campos associados para cada campo na fonte de dados; caso contrário, false. O padrão é true.

Exemplos

O exemplo a seguir demonstra como usar a AutoGenerateColumns propriedade para criar automaticamente colunas de campo associadas em um GridView controle para cada campo na fonte de dados.

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

Comentários

Quando a AutoGenerateColumns propriedade é definida como true, um AutoGeneratedField objeto é criado automaticamente para cada campo na fonte de dados. Cada campo é exibido como uma coluna no GridView controle na ordem em que os campos aparecem na fonte de dados. Essa opção fornece uma maneira conveniente de exibir todos os campos na fonte de dados; no entanto, você tem controle limitado de como um campo de coluna gerado automaticamente é exibido ou se comporta.

Em vez de permitir que o GridView controle gere automaticamente os campos de coluna, você pode definir manualmente os campos de coluna definindo a AutoGenerateColumns propriedade false e criando uma coleção personalizada Columns . Além dos campos de coluna associados, você também pode exibir um campo de coluna de botão, um campo de coluna de caixa de seleção, um campo de comando, um campo de coluna de hiperlink, um campo de imagem ou um campo de coluna com base em seu próprio modelo de definição personalizada.

Você também pode combinar campos de coluna declarados explicitamente com campos de coluna gerados automaticamente. Quando ambos são usados, os campos de coluna declarados explicitamente são renderizados primeiro, seguidos pelos campos de coluna gerados automaticamente. Os campos de coluna associados gerados automaticamente não são adicionados à Columns coleção. Para obter mais informações, consulte Columns.

Se você definir essa propriedade true e definir a ItemType propriedade como um tipo de modelo, DynamicField os controles serão gerados. Se você não definir a propriedade, BoundField os ItemType controles serão gerados. Se você não quiser controles DynamicField , terá as seguintes opções:

  • Defina a ColumnsGenerator propriedade como null no Page_Load manipulador de eventos. Nesse caso, BoundField os controles são gerados.

  • Escreva um código personalizado para gerar campos automaticamente criando e atribuindo sua própria ColumnsGenerator classe e atribuindo uma instância dele ao controle.

  • Defina AutoGenerateColumns como false. Nesse caso, nenhum campo é gerado e você deve especificar manualmente campos usando controles como BoundField ou ImageField.

  • Não defina a propriedade ItemType. Nesse caso, BoundField os controles são gerados.

Aplica-se a

Confira também