Condividi tramite


GridView.AutoGenerateColumns Proprietà

Definizione

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

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. Il valore predefinito è true.

Esempio

Nell'esempio seguente viene illustrato come usare 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 controllo nell'ordine GridView in cui i campi vengono visualizzati nell'origine dati. Questa opzione offre un modo pratico per visualizzare ogni campo nell'origine dati; tuttavia, è disponibile un controllo limitato sulla 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 di colonna associati, è 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 definito 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 visualizzati prima, seguiti dai campi di colonna generati automaticamente. I campi di 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 vengono generati i controlli. Se non si imposta la ItemType proprietà, BoundField vengono generati i controlli. Se non si vogliono 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 assegnandole un'istanza al controllo.

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

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

Si applica a

Vedi anche