GridView.AutoGenerateColumns Propriété

Définition

Obtient ou définit une valeur indiquant si les champs liés sont créés automatiquement pour chaque champ dans la source de données.

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

Valeur de propriété

Affectez la valeur true pour créer automatiquement des champs liés pour chaque champ dans la source de données ; sinon, false. La valeur par défaut est true.

Exemples

L’exemple suivant montre comment utiliser la AutoGenerateColumns propriété pour créer automatiquement des colonnes de champs liées dans un GridView contrôle pour chaque champ de la source de données.

<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>

Remarques

Lorsque la propriété a la AutoGenerateColumnstruevaleur , un AutoGeneratedField objet est automatiquement créé pour chaque champ de la source de données. Chaque champ est ensuite affiché sous la forme d’une colonne dans le GridView contrôle dans l’ordre dans lequel les champs apparaissent dans la source de données. Cette option offre un moyen pratique d’afficher chaque champ dans la source de données ; Toutefois, vous avez un contrôle limité sur la façon dont un champ de colonne généré automatiquement est affiché ou se comporte.

Au lieu de laisser le GridView contrôle générer automatiquement les champs de colonne, vous pouvez définir manuellement les champs de colonne en définissant la AutoGenerateColumns propriété sur false , puis en créant une collection personnalisée Columns . En plus des champs de colonne liés, vous pouvez également afficher un champ de colonne de bouton, un champ de colonne de case à cocher, un champ de commande, un champ de colonne de lien hypertexte, un champ image ou un champ de colonne basé sur votre propre modèle personnalisé.

Vous pouvez également combiner des champs de colonne déclarés explicitement avec des champs de colonne générés automatiquement. Lorsque les deux sont utilisés, les champs de colonne explicitement déclarés sont affichés en premier, suivis des champs de colonne générés automatiquement. Les champs de colonne liés générés automatiquement ne sont pas ajoutés à la Columns collection. Pour plus d'informations, consultez Columns.

Si vous définissez cette propriété sur true et que vous définissez la ItemType propriété sur un type de modèle, DynamicField les contrôles sont générés. Si vous ne définissez pas la ItemType propriété, BoundField les contrôles sont générés. Si vous ne souhaitez pas de DynamicField contrôles, vous disposez des options suivantes :

  • Définissez la propriété null sur ColumnsGenerator dans le gestionnaire d’événementsPage_Load. Dans ce cas, BoundField les contrôles sont générés.

  • Écrivez du code personnalisé pour générer automatiquement des champs en créant et en affectant votre propre ColumnsGenerator classe et en affectant une instance de celle-ci au contrôle.

  • Affectez la valeur AutoGenerateColumns à false. Dans ce cas, aucun champ n’est généré et vous devez spécifier manuellement les champs à l’aide de contrôles tels que BoundField ou ImageField.

  • Ne définissez pas la propriété ItemType. Dans ce cas, BoundField les contrôles sont générés.

S’applique à

Voir aussi