GridView.AutoGenerateColumns Proprietà

Definizione

Ottiene o imposta un valore che indica se i campi associati vengono creati automaticamente per ogni campo nell'origine dati.

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 nell'origine dati; in caso contrario, false. Il valore predefinito è true.

Esempio

Nell'esempio seguente viene illustrato come utilizzare la AutoGenerateColumns proprietà per creare automaticamente colonne di campo associate in un GridView controllo per ogni campo nell'origine dati.

<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 creato automaticamente un AutoGeneratedField oggetto per ogni campo nell'origine dati. Ogni campo viene quindi visualizzato come colonna nel GridView controllo nell'ordine in cui i campi vengono visualizzati nell'origine dati. Questa opzione offre un modo pratico per visualizzare ogni campo nell'origine dati; Tuttavia, si ha un controllo limitato della modalità di visualizzazione o comportamento di un campo di colonna generato automaticamente.

Anziché consentire al GridView controllo di generare automaticamente i campi di colonna, è possibile definire manualmente i campi di colonna impostando la AutoGenerateColumns proprietà su false e quindi creando una raccolta personalizzata Columns . Oltre ai campi delle colonne associate, è anche possibile visualizzare un campo colonna pulsante, un campo colonna casella di controllo, un campo di comando, un campo colonna collegamento ipertestuale, un campo immagine o un campo di colonna basato sul modello personalizzato.

È anche possibile combinare campi di colonna dichiarati in modo esplicito con campi di colonna generati automaticamente. Quando vengono usati entrambi, i campi di colonna dichiarati in modo esplicito vengono resi per primi, seguiti dai campi di colonna generati automaticamente. I campi colonna associati generati automaticamente non vengono aggiunti alla Columns raccolta. Per altre informazioni, vedere Columns.

Se si imposta questa proprietà su true e si imposta la ItemType proprietà su un tipo di modello, DynamicField i controlli vengono generati. Se non si imposta la ItemType proprietà, BoundField vengono generati i controlli. Se non si desiderano DynamicField controlli, sono disponibili le opzioni seguenti:

  • Impostare la ColumnsGenerator proprietà su null nel Page_Load gestore eventi. In tal caso, BoundField i controlli vengono generati.

  • Scrivere codice personalizzato per generare automaticamente i campi creando e assegnando una classe personalizzata ColumnsGenerator e assegnandone un'istanza al controllo.

  • Impostare AutoGenerateColumns su false. In tal caso, non vengono generati campi ed è necessario specificare manualmente i campi usando controlli come BoundField o ImageField.

  • Non impostare la ItemType proprietà . In tal caso, BoundField i controlli vengono generati.

Si applica a

Vedi anche