GridView.AutoGenerateColumns Propriedade

Definição

Recebe ou define um valor que indica se os campos limitados são automaticamente criados 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 de Propriedade

true criar automaticamente campos limitados para cada campo na fonte de dados; caso contrário, false. A predefinição é true.

Exemplos

O exemplo seguinte demonstra como usar a AutoGenerateColumns propriedade para criar automaticamente colunas de campo limitadas num GridView controlo para cada campo da 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>

Observações

Quando a AutoGenerateColumns propriedade é definida para true, um AutoGeneratedField objeto é automaticamente criado para cada campo na fonte de dados. Cada campo é então exibido como uma coluna no GridView controlo, pela ordem em que os campos aparecem na fonte de dados. Esta opção oferece uma forma conveniente de mostrar todos os campos na fonte de dados; No entanto, tem controlo limitado sobre como um campo de coluna gerado automaticamente é exibido ou se comporta.

Em vez de deixar o GridView controlo gerar automaticamente os campos da coluna, pode definir manualmente os campos da coluna definindo a AutoGenerateColumns propriedade para false e depois criando uma coleção personalizada Columns . Além dos campos de coluna limitados, pode também mostrar um campo de coluna de botão, uma caixa de seleção, um campo de comando, um campo de coluna de hiperligação, um campo de imagem ou um campo de coluna baseado no seu próprio modelo personalizado.

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

Se definir esta propriedade como true e definir a ItemType propriedade para um tipo de modelo, DynamicField são gerados controlos. Se não definir a ItemType propriedade, BoundField os controlos são gerados. Se não quiser DynamicField controlos, tem as seguintes opções:

  • Defina a ColumnsGenerator propriedade para null no Page_Load gestor de eventos. Nesse caso, BoundField são gerados controlos.

  • Escreve código personalizado para gerar campos automaticamente, criando e atribuindo a tua própria ColumnsGenerator classe e atribuindo uma instância ao controlo.

  • Defina AutoGenerateColumns como false. Nesse caso, não são gerados campos, e deve especificar manualmente campos usando controlos como BoundField ou ImageField.

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

Aplica-se a

Ver também