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.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
Valor da propriedade
true para criar automaticamente os campos associados para cada campo na fonte de dados; caso contrário, false.true to automatically create bound fields for each field in the data source; otherwise, false. O padrão é true.The default is true.
Exemplos
O exemplo a seguir demonstra como usar a AutoGenerateColumns propriedade para criar automaticamente colunas de campos associados em um GridView controle para cada campo na fonte de dados.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>
Comentários
Quando a AutoGenerateColumns propriedade é definida como true , um AutoGeneratedField objeto é criado automaticamente para cada campo na fonte de dados.When the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. Cada campo é exibido como uma coluna no GridView controle na ordem em que os campos aparecem na fonte de dados.Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. Essa opção fornece uma maneira conveniente de exibir cada campo na fonte de dados; no entanto, você tem controle limitado de como um campo de coluna gerado automaticamente é exibido ou se comporta.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.
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 como false e, em seguida, criando uma Columns coleção personalizada.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. 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 personalizado definido.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.
Você também pode combinar campos de coluna declarados explicitamente com campos de coluna gerados automaticamente.You can also combine explicitly declared column fields with automatically generated column fields. Quando ambos são usados, os campos de coluna declarados explicitamente são processados primeiro, seguidos pelos campos de coluna gerados automaticamente.When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. Os campos de coluna associados gerados automaticamente não são adicionados à Columns coleção.Automatically generated bound column fields are not added to the Columns collection. Para obter mais informações, consulte Columns.For more information, see Columns.
Se você definir essa propriedade como true e definir a ItemType propriedade como um tipo de modelo, os DynamicField controles serão gerados.If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. Se você não definir a ItemType propriedade, os BoundField controles serão gerados.If you do not set the ItemType property, BoundField controls are generated. Se você não quiser DynamicField controles, terá as seguintes opções:If you do not want DynamicField controls, you have the following options:
Defina a ColumnsGenerator propriedade como
nullnoPage_Loadmanipulador de eventos.Set the ColumnsGenerator property tonullin thePage_Loadevent handler. Nesse caso, os BoundField controles são gerados.In that case, BoundField controls are generated.Escreva código personalizado para gerar campos automaticamente criando e atribuindo sua própria ColumnsGenerator classe e atribuindo uma instância dele ao controle.Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.
Defina AutoGenerateColumns como
false.Set AutoGenerateColumns tofalse. Nesse caso, nenhum campo é gerado e você deve especificar manualmente os campos usando controles como BoundField ou ImageField .In that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.Não defina a propriedade ItemType.Do not set the ItemType property. Nesse caso, os BoundField controles são gerados.In that case, BoundField controls are generated.