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

Definición

Obtiene o establece un valor que indica si se deben crear automáticamente campos enlazados para cada campo del origen de datos.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 de propiedad

Es true para que se creen automáticamente campos enlazados para cada campo del origen de datos; de lo contrario, es false.true to automatically create bound fields for each field in the data source; otherwise, false. De manera predeterminada, es true.The default is true.

Ejemplos

En el ejemplo siguiente se muestra cómo utilizar AutoGenerateColumns la propiedad para crear automáticamente columnas de campo enlazadas en un GridView control para cada campo del origen de datos.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>

Comentarios

Cuando la AutoGenerateColumns propiedad está establecida en true, se AutoGeneratedField crea automáticamente un objeto para cada campo del origen de datos.When the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. Cada campo se muestra como una columna en GridView el control en el orden en que aparecen los campos en el origen de datos.Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. Esta opción proporciona una manera cómoda de Mostrar todos los campos del origen de datos; sin embargo, tiene un control limitado de cómo se muestra o se comporta un campo de columna generado automáticamente.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.

En lugar de permitir que GridView el control genere automáticamente los campos de columna, puede definir manualmente los campos de columna estableciendo AutoGenerateColumns la propiedad false en y, a continuación Columns , creando una colección 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. Además de los campos de columna enlazados, también puede mostrar un campo de columna de botón, un campo de columna de casilla, un campo de comando, un campo de columna de hipervínculo, un campo de imagen o un campo de columna basado en su propia plantilla definida por el usuario.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.

También puede combinar campos de columna declarados explícitamente con campos de columna generados automáticamente.You can also combine explicitly declared column fields with automatically generated column fields. Cuando se usan ambos, los campos de columna declarados explícitamente se representan en primer lugar, seguidos de los campos de columna generados automáticamente.When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. Los campos de columna enlazados generados automáticamente no Columns se agregan a la colección.Automatically generated bound column fields are not added to the Columns collection. Para obtener más información, vea Columns.For more information, see Columns.

Si establece esta propiedad en true y establece la ItemType propiedad en un tipo de modelo, DynamicField se generan controles.If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. Si no se establece la ItemType propiedad, BoundField se generan controles.If you do not set the ItemType property, BoundField controls are generated. Si no desea DynamicField controles, tiene las siguientes opciones:If you do not want DynamicField controls, you have the following options:

  • Establezca la ColumnsGenerator null propiedad en en el Page_Load controlador de eventos.Set the ColumnsGenerator property to null in the Page_Load event handler. En ese caso, BoundField se generan controles.In that case, BoundField controls are generated.

  • Escriba código personalizado para generar campos automáticamente creando y asignando su propia ColumnsGenerator clase y asignando una instancia del mismo al control.Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.

  • Establezca AutoGenerateColumns en false.Set AutoGenerateColumns to false. En ese caso, no se genera ningún campo y debe especificar manualmente los campos mediante controles como BoundField o. ImageFieldIn that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.

  • No establezca la propiedad ItemType.Do not set the ItemType property. En ese caso, BoundField se generan controles.In that case, BoundField controls are generated.

Se aplica a

Consulte también: