GridView.AutoGenerateColumns Eigenschaft

Definition

Ruft einen Wert ab, der angibt, ob für jedes Feld in der Datenquelle automatisch gebundene Felder erstellt werden, oder legt diesen Wert fest.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

Eigenschaftswert

true, um gebundene Felder für jedes Feld in der Datenquelle automatisch zu erstellen, andernfalls false.true to automatically create bound fields for each field in the data source; otherwise, false. Die Standardeinstellung ist true.The default is true.

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie die AutoGenerateColumns -Eigenschaft verwendet wird, um automatisch gebundene Feld GridView Spalten in einem-Steuerelement für jedes Feld in der Datenquelle zu erstellen.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>

Hinweise

Wenn die AutoGenerateColumns -Eigenschaft auf truefestgelegt ist AutoGeneratedField , wird automatisch ein-Objekt für jedes Feld in der Datenquelle erstellt.When the AutoGenerateColumns property is set to true, an AutoGeneratedField object is automatically created for each field in the data source. Jedes Feld wird dann als Spalte im GridView -Steuerelement in der Reihenfolge angezeigt, in der die Felder in der Datenquelle angezeigt werden.Each field is then displayed as a column in the GridView control in the order that the fields appear in the data source. Diese Option bietet eine bequeme Möglichkeit, jedes Feld in der Datenquelle anzuzeigen. Sie haben jedoch eingeschränkte Kontrolle darüber, wie ein automatisch generiertes Spalten Feld angezeigt wird oder sich verhält.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.

Anstatt das GridView Steuerelement automatisch die Spalten Felder generieren zu lassen, können Sie die Spalten Felder manuell definieren, indem AutoGenerateColumns Sie die false -Eigenschaft auf festlegen und Columns dann eine benutzerdefinierte Sammlung erstellen.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. Zusätzlich zu den Feldern gebundener Spalten können Sie auch ein Schaltflächen Spalten Feld, ein Kontrollkästchen-Spalten Feld, ein Befehlsfeld, ein Hyperlink-Spalten Feld, ein Bildfeld oder ein Spalten Feld basierend auf Ihrer eigenen benutzerdefinierten Vorlage anzeigen.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.

Sie können auch explizit deklarierte Spalten Felder mit automatisch generierten Spalten Feldern kombinieren.You can also combine explicitly declared column fields with automatically generated column fields. Wenn beide verwendet werden, werden explizit deklarierte Spalten Felder zuerst gerendert, gefolgt von den automatisch generierten Spalten Feldern.When both are used, explicitly declared column fields are rendered first, followed by the automatically generated column fields. Automatisch generierte gebundene Spalten Felder werden der Columns Auflistung nicht hinzugefügt.Automatically generated bound column fields are not added to the Columns collection. Weitere Informationen finden Sie unter Columns.For more information, see Columns.

Wenn Sie diese Eigenschaft auf true festlegen und die ItemType -Eigenschaft auf einen Modelltyp festlegen DynamicField , werden Steuerelemente generiert.If you set this property to true and set the ItemType property to a model type, DynamicField controls are generated. Wenn Sie die ItemType -Eigenschaft nicht festlegen, BoundField werden Steuerelemente generiert.If you do not set the ItemType property, BoundField controls are generated. Wenn Sie keine Steuerelemente DynamicField möchten, haben Sie die folgenden Optionen:If you do not want DynamicField controls, you have the following options:

  • Legen Sie ColumnsGenerator die- null Eigenschaft im Page_Load -Ereignishandler auf fest.Set the ColumnsGenerator property to null in the Page_Load event handler. In diesem Fall BoundField werden Steuerelemente generiert.In that case, BoundField controls are generated.

  • Schreiben Sie benutzerdefinierten Code zum automatischen Generieren von Feldern, indem Sie ColumnsGenerator eine eigene Klasse erstellen und zuweisen und dem Steuerelement eine Instanz davon zuweisen.Write custom code to automatically generate fields by creating and assigning your own ColumnsGenerator class and assigning an instance of it to the control.

  • Legen Sie AutoGenerateColumns auf false fest.Set AutoGenerateColumns to false. In diesem Fall werden keine Felder generiert, und Sie müssen Felder manuell mithilfe von Steuerelementen, z BoundField . ImageFieldb. oder, angeben.In that case, no fields are generated, and you must manually specify fields using controls such as BoundField or ImageField.

  • Legen Sie die ItemType-Eigenschaft nicht fest.Do not set the ItemType property. In diesem Fall BoundField werden Steuerelemente generiert.In that case, BoundField controls are generated.

Gilt für:

Siehe auch