GridView.AutoGenerateColumns Egenskap

Definition

Hämtar eller anger ett värde som anger om bundna fält skapas automatiskt för varje fält i datakällan.

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

Egenskapsvärde

trueför att automatiskt skapa bundna fält för varje fält i datakällan. annars . false Standardvärdet är true.

Exempel

I följande exempel visas hur du använder AutoGenerateColumns egenskapen för att automatiskt skapa bundna fältkolumner i en GridView kontroll för varje fält i datakällan.

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

Kommentarer

När egenskapen AutoGenerateColumns är inställd truepå skapas ett AutoGeneratedField objekt automatiskt för varje fält i datakällan. Varje fält visas sedan som en kolumn i GridView kontrollen i den ordning som fälten visas i datakällan. Det här alternativet är ett praktiskt sätt att visa alla fält i datakällan. Du har dock begränsad kontroll över hur ett automatiskt genererat kolumnfält visas eller fungerar.

I stället för att låta GridView kontrollen automatiskt generera kolumnfälten kan du manuellt definiera kolumnfälten genom att ange AutoGenerateColumns egenskapen till false och sedan skapa en anpassad Columns samling. Förutom bundna kolumnfält kan du även visa ett knappkolumnfält, ett kryssrutekolumnfält, ett kommandofält, ett hyperlänkkolumnfält, ett bildfält eller ett kolumnfält baserat på din egen anpassade mall.

Du kan också kombinera explicit deklarerade kolumnfält med automatiskt genererade kolumnfält. När båda används återges uttryckligen deklarerade kolumnfält först, följt av de automatiskt genererade kolumnfälten. Automatiskt genererade bundna kolumnfält läggs inte till i Columns samlingen. Mer information finns i Columns.

Om du ställer in den här egenskapen på true och anger ItemType egenskapen till en modelltyp DynamicField genereras kontroller. Om du inte anger egenskapen ItemTypeBoundField genereras kontroller. Om du inte vill DynamicField ha kontroller har du följande alternativ:

  • Ange egenskapen ColumnsGenerator till null i Page_Load händelsehanteraren. I så fall BoundField genereras kontroller.

  • Skriv anpassad kod för att automatiskt generera fält genom att skapa och tilldela din egen ColumnsGenerator klass och tilldela en instans av den till kontrollen.

  • Ställ in AutoGenerateColumnsfalse. I så fall genereras inga fält och du måste ange fält manuellt med hjälp av kontroller som BoundField eller ImageField.

  • Ange inte egenskapen ItemType . I så fall BoundField genereras kontroller.

Gäller för

Se även