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

Definizione

Ottiene o imposta un valore che indica se per ogni campo dell'origine dati vengono creati automaticamente campi associati.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

Valore della proprietà

true per creare automaticamente campi associati per ogni campo dell'origine dati, altrimenti false.true to automatically create bound fields for each field in the data source; otherwise, false. Il valore predefinito è true.The default is true.

Esempi

Nell'esempio seguente viene illustrato come utilizzare la AutoGenerateColumns proprietà per creare automaticamente colonne di campi associati in GridView un controllo per ogni campo dell'origine dati.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>

Commenti

Quando la AutoGenerateColumns proprietà è impostata su true, viene AutoGeneratedField creato automaticamente un oggetto per ogni campo dell'origine dati.When the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. Ogni campo viene quindi visualizzato come una colonna nel GridView controllo nell'ordine in cui i campi vengono visualizzati nell'origine dati.Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. Questa opzione consente di visualizzare in modo pratico tutti i campi dell'origine dati. Tuttavia, si dispone di un controllo limitato sulla modalità di visualizzazione o di comportamento di un campo di colonna generato automaticamente.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.

Anziché consentire al GridView controllo di generare automaticamente i campi colonna, è possibile definire manualmente i campi colonna impostando la AutoGenerateColumns proprietà su false e quindi creando una raccolta Columns personalizzata.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. Oltre ai campi colonna associati, è possibile visualizzare anche un campo colonna pulsante, un campo colonna casella di controllo, un campo comando, un campo colonna collegamento ipertestuale, un campo immagine o un campo colonna basato su un modello personalizzato definito.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.

È anche possibile combinare campi colonna dichiarati in modo esplicito con campi colonna generati automaticamente.You can also combine explicitly declared column fields with automatically generated column fields. Quando vengono utilizzati entrambi, viene eseguito prima il rendering dei campi di colonna dichiarati in modo esplicito, seguiti dai campi colonna generati automaticamente.When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. I campi delle Columns colonne associate generate automaticamente non vengono aggiunti alla raccolta.Automatically generated bound column fields are not added to the Columns collection. Per ulteriori informazioni, vedere Columns.For more information, see Columns.

Se si imposta questa proprietà su true e si imposta ItemType la proprietà su un tipo di DynamicField modello, vengono generati i controlli.If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. Se non si imposta la proprietà ItemType , BoundField verranno generati i controlli.If you do not set the ItemType property, BoundField controls are generated. Se non si desiderano DynamicField i controlli, sono disponibili le opzioni seguenti:If you do not want DynamicField controls, you have the following options:

  • Impostare la ColumnsGenerator proprietà su null nel Page_Load gestore eventi.Set the ColumnsGenerator property to null in the Page_Load event handler. In tal caso, BoundField vengono generati i controlli.In that case, BoundField controls are generated.

  • Scrivere codice personalizzato per generare automaticamente i campi creando e assegnando una propria ColumnsGenerator classe e assegnando un'istanza di al controllo.Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.

  • Impostare AutoGenerateColumns su false.Set AutoGenerateColumns to false. In tal caso, non viene generato alcun campo ed è necessario specificare manualmente i campi utilizzando i controlli BoundField , ImageFieldad esempio o.In that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.

  • Non impostare la proprietà ItemType.Do not set the ItemType property. In tal caso, BoundField vengono generati i controlli.In that case, BoundField controls are generated.

Si applica a

Vedi anche