Freigeben über


Übersicht über das FormView-Webserversteuerelement

Aktualisiert: November 2007

Mit dem FormView-Steuerelement wird jeweils ein einzelner Datensatz aus einer Datenquelle angezeigt. Bei der Verwendung des FormView-Steuerelements werden Vorlagen zum Anzeigen und Bearbeiten von datengebundenen Werten erstellt. Die Vorlagen enthalten Steuerelemente, Bindungsausdrücke und Formatierungen, die das Aussehen und die Funktionalität des Formulars definieren. Das FormView-Steuerelement wird oft in Verbindung mit einem GridView-Steuerelement für Master-Detail-Szenarios verwendet.

Dieses Thema enthält folgende Abschnitte:

  • Hintergrund

  • Codebeispiele

  • Klassenreferenz

Hintergrund

Mithilfe des FormView-Steuerelements kann, ähnlich wie mithilfe des DetailsView-Steuerelements, mit einzelnen Datensätzen einer Datenquelle gearbeitet werden. Der Unterschied zwischen dem FormView-Steuerelement und dem DetailsView-Steuerelement ist, dass das DetailsView-Steuerelement ein tabellarisches Layout verwendet, bei dem jedes Feld des Datensatzes als eigene Zeile angezeigt wird. Im Gegensatz dazu gibt das FormView-Steuerelement kein vordefiniertes Layout für das Anzeigen des Datensatzes an. Stattdessen erstellen Sie eine Vorlage, die Steuerelemente zur Anzeige der einzelnen Felder des Datensatzes enthält. Die Vorlage enthält die Formatierung, die Steuerelemente und die Bindungsausdrücke, mit denen das Formular erstellt wird.

Das FormView-Steuerelement wird in der Regel zum Aktualisieren und Einfügen von Datensätzen verwendet. Es wird häufig in Master/Detail-Szenarien verwendet, in denen der ausgewählte Datensatz des Mastersteuerelements den im FormView-Steuerelement angezeigten Inhalt festlegt. Weitere Informationen und ein Beispiel finden Sie unter Ändern von Daten mithilfe eines FormView-Webserversteuerelements.

Das FormView-Steuerelement ist auf die Fähigkeiten des Datenquellensteuerelements angewiesen, um Operationen wie das Aktualisieren, das Einfügen und das Löschen von Datensätzen auszuführen. Das FormView-Steuerelement zeigt jeweils nur einen einzigen Datensatz an, auch wenn die Datenquelle mehrere Datensätze übergibt.

Die Daten der zugeordneten Datenquelle können vom FormView-Steuerelement seitenweise, ein Datensatz nach dem anderen, ausgegeben werden. Dafür ist es notwendig, dass die Daten von einem Objekt repräsentiert werden, das die ICollection-Schnittstelle implementiert, oder dass die unterliegende Datenquelle Paging unterstützt. Das FormView-Steuerelement stellt die Benutzeroberfläche (UI) zum Navigieren zwischen Datensätzen zur Verfügung. Um Pagingverhalten zu aktivieren, legen Sie die AllowPaging-Eigenschaft auf true fest, und geben einen PagerTemplate-Wert an.

Das FormView-Steuerelement macht verschiedene Ereignisse verfügbar, die Sie behandeln können, um eigenen Code auszuführen. Die Ereignisse werden vor und nach Einfüge-, Aktualisierungs- und Löschoperationen des zugeordneten Datenquellensteuerelements ausgelöst. Sie können auch Handler für das ItemCreated-Ereignis und das ItemCommand-Ereignis schreiben. Weitere Informationen finden Sie unter Ereignisse des FormView-Webserversteuerelements.

Hinweis:

Das Ereignismodell des FormView-Steuerelements entspricht dem des GridView-Steuerelements. Allerdings bietet das FormView-Steuerelement keine Unterstützung für Auswahlereignisse, da immer der aktuelle Datensatz ausgewählt ist.

Datenbindung mit dem FormView-Steuerelement

Das FormView-Steuerelement stellt die folgenden Optionen für die Datenbindung zur Verfügung:

  • Datenbindung unter Verwendung der DataSourceID-Eigenschaft, mit der das FormView-Steuerelement an ein Datenquellensteuerelement gebunden werden kann. Dies ist die empfohlene Vorgehensweise, da so das FormView-Steuerelement die Fähigkeiten des Datenquellensteuerelements nutzen und die integrierten Funktionen für die Aktualisierung und das Paging zur Verfügung stellen kann.

  • Datenbindung unter Verwendung der DataSource-Eigenschaft, mit der Daten an verschiedene Objekte gebunden werden können, darunter ADO.NET-Datasets und Datenreader. Bei dieser Vorgehensweise müssen Sie selbst den Code für zusätzliche Funktionen wie die Aktualisierung und das Paging schreiben.

Beim Herstellen einer Bindung zu einer Datenquelle unter Verwendung der DataSourceID-Eigenschaft unterstützt das FormView-Steuerelement die bidirektionale Datenbindung. Zusätzlich zur Anzeige der Daten können Sie die automatische Unterstützung des Steuerelements für Einfüge-, Aktualisierungs- und Löschoperationen auf den gebundenen Daten aktivieren.

Weitere Informationen finden Sie unter Datengebundene Webserversteuerelemente.

Erstellen der Benutzeroberfläche des FormView-Steuerelements

Sie erstellen die Benutzeroberfläche für das FormView-Steuerelement, indem Sie Vorlagen erstellen. Dabei geben Sie unterschiedliche Vorlagen für verschiedene Aktionen an. Sie erstellen für den Anzeige-, den Einfüge- und den Bearbeitungsmodus jeweils eine ItemTemplate-Vorlage. Sie können das Paging mithilfe einer PagerTemplate-Vorlage steuern. Header und Footer des FormView-Steuerelements lassen sich über die HeaderTemplate-Vorlage bzw. die FooterTemplate-Vorlage anpassen. Mit EmptyDataTemplate können Sie außerdem eine Vorlage angeben, die angezeigt wird, wenn die Datenquelle keine Daten zurückgibt. Weitere Informationen finden Sie unter Erstellen von Vorlagen für das FormView-Webserversteuerelement.

Die für das FormView-Steuerelement erstellten Elementvorlagen geben den Inhalt des Steuerelements an. Für das Anpassen des Anzeigeformats stehen beim FormView-Steuerelement wie beim DetailsView-Steuerelement verschiedene Formateigenschaften zur Verfügung, z. B. EditRowStyle, EmptyDataRowStyle, FooterStyle, HeaderStyle, InsertRowStyle, PagerStyle und RowStyle.

Das folgende Beispiel zeigt eine ASP.NET-Seite, die zum Anzeigen von Daten ein FormView-Steuerelement verwendet.

<%@ Page language="VB" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" >
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="ProductsSqlDataSource"
                AllowPaging="true"
                >

                <HeaderStyle forecolor="white" backcolor="Blue" />                

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel"  Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel"  Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel"  Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel"  Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel"  Text='<%# Eval("UnitPrice") %>' /></td>
                    </tr>
                  </table>                 
                </ItemTemplate>

                <PagerTemplate>
                  <table>
                    <tr>
                      <td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
                      <td><asp:LinkButton ID="PrevButton"  CommandName="Page" CommandArgument="Prev"  Text="<"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="NextButton"  CommandName="Page" CommandArgument="Next"  Text=">"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="LastButton"  CommandName="Page" CommandArgument="Last"  Text=">>" RunAt="server"/></td>
                    </tr>
                  </table>
                </PagerTemplate>

              </asp:FormView>

            </td>
          </tr>
        </table>

        <asp:SqlDataSource ID="ProductsSqlDataSource" 
          SelectCommand="SELECT * FROM [Products]" 
          connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" 
          RunAt="server"/>

      </form>
  </body>
</html>
<%@ Page language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
  <head >
    <title>FormView Example</title>
</head>
<body>
    <form id="form1" >
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="ProductsSqlDataSource"
                AllowPaging="true"
                >

                <HeaderStyle forecolor="white" backcolor="Blue" />                

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel"  Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel"  Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel"  Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel"  Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel"  Text='<%# Eval("UnitPrice") %>' /></td>
                    </tr>
                  </table>                 
                </ItemTemplate>

                <PagerTemplate>
                  <table>
                    <tr>
                      <td><asp:LinkButton ID="FirstButton" CommandName="Page" CommandArgument="First" Text="<<" RunAt="server"/></td>
                      <td><asp:LinkButton ID="PrevButton"  CommandName="Page" CommandArgument="Prev"  Text="<"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="NextButton"  CommandName="Page" CommandArgument="Next"  Text=">"  RunAt="server"/></td>
                      <td><asp:LinkButton ID="LastButton"  CommandName="Page" CommandArgument="Last"  Text=">>" RunAt="server"/></td>
                    </tr>
                  </table>
                </PagerTemplate>

              </asp:FormView>

            </td>
          </tr>
        </table>

        <asp:SqlDataSource ID="ProductsSqlDataSource" 
          SelectCommand="SELECT ProductID, ProductName, CategoryID, QuantityPerUnit, UnitPrice FROM [Products]" 
          connectionstring="<%$ ConnectionStrings:NorthwindConnection %>" 
          RunAt="server"/>

      </form>
  </body>
</html>

Zurück nach oben

Codebeispiele

Erstellen von Vorlagen für das FormView-Webserversteuerelement

Paging in einem FormView-Webserversteuerelement

Ändern von Daten mithilfe eines FormView-Webserversteuerelements

Ereignisse des FormView-Webserversteuerelements

Exemplarische Vorgehensweise: Anzeigen formatierter Daten in Webseiten mit dem FormView-Webserversteuerelement

Zurück nach oben

Klassenreferenz

In der folgenden Tabelle werden die Hauptklassen aufgelistet, die sich auf das FormView-Steuerelement beziehen.

Member

Beschreibung

FormView

Die Hauptklasse des Steuerelements.

Zurück nach oben

Siehe auch

Konzepte

Überblick über den ASP.NET-Datenzugriff

Vorlagen für ASP.NET-Webserver-Steuerelemente

Weitere Ressourcen

Toolbox-Datensteuerelemente