GridView.AutoGenerateColumns Właściwość

Definicja

Pobiera lub ustawia wartość wskazującą, czy pola powiązane są automatycznie tworzone dla każdego pola w źródle danych.

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

Wartość właściwości

true aby automatycznie tworzyć powiązane pola dla każdego pola w źródle danych; w przeciwnym razie , false. Wartość domyślna to true.

Przykłady

W poniższym przykładzie pokazano, jak za pomocą AutoGenerateColumns właściwości automatycznie tworzyć powiązane kolumny pól w kontrolce GridView dla każdego pola w źródle danych.

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

Uwagi

Gdy właściwość jest ustawiona AutoGenerateColumns na truewartość , AutoGeneratedField obiekt jest automatycznie tworzony dla każdego pola w źródle danych. Każde pole jest następnie wyświetlane jako kolumna w kontrolce GridView w kolejności wyświetlania pól w źródle danych. Ta opcja zapewnia wygodny sposób wyświetlania każdego pola w źródle danych; jednak masz ograniczoną kontrolę nad sposobem wyświetlania lub zachowania pola kolumny wygenerowanej automatycznie.

Zamiast zezwalać kontrolce GridView na automatyczne generowanie pól kolumn, można ręcznie zdefiniować pola kolumn, ustawiając AutoGenerateColumns właściwość na false , a następnie tworząc kolekcję niestandardową Columns . Oprócz pól kolumn powiązanych można również wyświetlić pole kolumny przycisku, pole wyboru, pole polecenia, pole kolumny hiperlinku, pole obrazu lub pole kolumny na podstawie własnego szablonu zdefiniowanego przez użytkownika.

Możesz również połączyć jawnie zadeklarowane pola kolumn z automatycznie wygenerowanymi polami kolumn. Gdy oba są używane, najpierw są renderowane jawnie zadeklarowane pola kolumny, a następnie automatycznie generowane pola kolumny. Pola kolumn powiązanych automatycznie nie są dodawane do kolekcji Columns . Aby uzyskać więcej informacji, zobacz Columns.

Jeśli ustawisz tę właściwość na true i ustawisz ItemType właściwość na typ modelu, DynamicField zostaną wygenerowane kontrolki. Jeśli właściwość nie zostanie ustawiona ItemType , BoundField zostaną wygenerowane kontrolki. Jeśli nie chcesz DynamicField kontrolować, dostępne są następujące opcje:

  • ColumnsGenerator Ustaw właściwość na null w procedurze obsługi zdarzeńPage_Load. W takim przypadku BoundField są generowane kontrolki.

  • Pisanie kodu niestandardowego w celu automatycznego generowania pól przez utworzenie i przypisanie własnej ColumnsGenerator klasy oraz przypisanie wystąpienia do kontrolki.

  • Ustaw wartość opcji AutoGenerateColumns na false. W takim przypadku żadne pola nie są generowane i należy ręcznie określić pola przy użyciu kontrolek, takich jak BoundField lub ImageField.

  • Nie ustawiaj ItemType właściwości . W takim przypadku BoundField są generowane kontrolki.

Dotyczy

Zobacz też