Compartir a través de


GridView.AutoGenerateColumns Propiedad

Definición

Obtiene o establece un valor que indica si se deben crear automáticamente campos enlazados para cada campo del origen de datos.

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. De manera predeterminada, es true.

Ejemplos

En el ejemplo siguiente se muestra cómo usar la AutoGenerateColumns propiedad para crear automáticamente columnas de campo enlazadas en un GridView control para cada campo del origen de datos.

<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 se establece trueen , se crea automáticamente un AutoGeneratedField objeto para cada campo del origen de datos. A continuación, cada campo se muestra como una columna en el GridView control en el orden en que los campos aparecen en el origen de datos. 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.

En lugar de permitir que el GridView control genere automáticamente los campos de columna, puede definir manualmente los campos de columna estableciendo la AutoGenerateColumns propiedad false en y creando una colección personalizada Columns . 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 personalizado.

También puede combinar campos de columna declarados explícitamente con campos de columna generados automáticamente. Cuando se usan ambos, los campos de columna declarados explícitamente se representan primero, seguidos de los campos de columna generados automáticamente. Los campos de columna enlazados generados automáticamente no se agregan a la Columns colección. Para obtener más información, vea Columns.

Si establece esta propiedad true en y establece la ItemType propiedad en un tipo de modelo, DynamicField se generan controles. Si no establece la ItemType propiedad , BoundField se generan controles. Si no desea DynamicField controles, tiene las siguientes opciones:

  • Establezca la ColumnsGenerator propiedad null en en el controlador de Page_Load eventos. En ese caso, BoundField se generan controles.

  • Escriba código personalizado para generar automáticamente campos mediante la creación y asignación de su propia ColumnsGenerator clase y la asignación de una instancia del mismo al control.

  • Establezca AutoGenerateColumns en false. En ese caso, no se generan campos y debe especificar manualmente campos mediante controles como BoundField o ImageField.

  • No establezca la propiedad ItemType. En ese caso, BoundField se generan controles.

Se aplica a

Consulte también