Freigeben über


Erstellen von Vorlagen für das FormView-Webserversteuerelement

Aktualisiert: November 2007

Sie können das FormView-Steuerelement mithilfe von Vorlagen anpassen, mit denen der Benutzer die vom Steuerelement angezeigten Daten sehen oder ändern kann. Jede Vorlage besteht aus Markup, Steuerelementen mit Datenbindungsausdrücken und Befehlsschaltflächen, die den Modus des FormView-Steuerelements ändern.

Hinweis:

Weitere Informationen über Datenbindungsausdrücke finden Sie unter Übersicht über Datenbindungsausdrücke.

Vorlagen zum Anzeigen

Die primäre Anzeigevorlage für das FormView-Steuerelement ist die ItemTemplate-Vorlage. Die ItemTemplate-Vorlage zeigt gebundene Daten im schreibgeschützten Modus an. Die Steuerelemente in einer ItemTemplate dienen nur dem Anzeigen von Daten, z. B. ein Label-Steuerelement. Die Vorlage kann auch Befehlsschaltflächen enthalten zum Ändern des FormView-Steuerelementmodus für das Einfügen, Bearbeiten oder Löschen des aktuellen Datensatzes. Mit einem Datenbindungsausdruck, der die Eval-Methode für Einwegdatenbindung umfasst, binden Sie Steuerelemente in der Vorlage an Daten, wie das folgende Beispiel zeigt.

<asp:FormView ID="FormView1"
  DataSourceID="SqlDataSource1"
  DataKeyNames="ProductID"     
  RunAt="server">

  <ItemTemplate>
    <table>
      <tr><td align="right"><b>Product ID:</b></td>       <td><%# Eval("ProductID") %></td></tr>
      <tr><td align="right"><b>Product Name:</b></td>     <td><%# Eval("ProductName") %></td></tr>
      <tr><td align="right"><b>Category ID:</b></td>      <td><%# Eval("CategoryID") %></td></tr>
      <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr>
      <tr><td align="right"><b>Unit Price:</b></td>       <td><%# Eval("UnitPrice") %></td></tr>
    </table>                 
  </ItemTemplate>                   
</asp:FormView>
<asp:FormView ID="FormView1"
  DataSourceID="SqlDataSource1"
  DataKeyNames="ProductID"     
  RunAt="server">

  <ItemTemplate>
    <table>
      <tr><td align="right"><b>Product ID:</b></td>       <td><%# Eval("ProductID") %></td></tr>
      <tr><td align="right"><b>Product Name:</b></td>     <td><%# Eval("ProductName") %></td></tr>
      <tr><td align="right"><b>Category ID:</b></td>      <td><%# Eval("CategoryID") %></td></tr>
      <tr><td align="right"><b>Quantity Per Unit:</b></td><td><%# Eval("QuantityPerUnit") %></td></tr>
      <tr><td align="right"><b>Unit Price:</b></td>       <td><%# Eval("UnitPrice") %></td></tr>
    </table>                 
  </ItemTemplate>                 
</asp:FormView>

Die ItemTemplate-Vorlage kann LinkButton-Steuerelemente enthalten, die den Modus des FormView-Steuerelements auf Grundlage des CommandName-Werts ändern. Der CommandName-Wert New aktiviert für den Datensatz den Einfügemodus und lädt die InsertItemTemplate-Vorlage, in die der Benutzer die Werte für einen neuen Datensatz eingeben kann. Sie können der ItemTemplate-Vorlage eine Schaltfläche mit dem CommandName-Wert Edit hinzufügen, um das FormView-Steuerelement in den Bearbeitungsmodus zu setzen. Eine Schaltfläche mit dem CommandName-Wert Delete kann der ItemTemplate-Vorlage hinzugefügt werden, um Benutzern zu erlauben, den aktuellen Datensatz der Datenquelle zu löschen.

Die anderen Anzeigevorlagen, die Sie mit dem FormView-Steuerelement verwenden können, sind die EmptyDataTemplate-Vorlage, die angezeigt wird, wenn aktuell kein anzubindender Datensatz vorhanden ist, und die HeaderTemplate-Vorlage sowie die FooterTemplate-Vorlage, die den Inhalt von Header bzw. Footer definieren.

Vorlagen für Bearbeiten und Einfügen

Sie können die EditItemTemplate-Vorlage verwenden, um Benutzern das Ändern eines vorhandenen Datensatzes zu erlauben, und die InsertItemTemplate-Vorlage für die Aufnahme von Werten eines in die Datenquelle neu aufzunehmenden Datensatzes. Sowohl in der EditItemTemplate-Vorlage als auch in der InsertItemTemplate-Vorlage werden in der Regel Steuerelemente zur Aufnahme von Benutzereingaben eingefügt, z. B. die Steuerelemente TextBox-Steuerelemente, CheckBox-Steuerelemente oder DropDownList-Steuerelemente. Es können auch Steuerelemente zur Anzeige von schreibgeschützten Daten hinzugefügt werden sowie Befehlsschaltflächen, mit denen der Benutzer aktuelle Datensätze bearbeiten, einen neuen Datensatz hinzufügen oder einen Vorgang abbrechen kann. Sie binden Steuerelemente der EditItemTemplate-Vorlage und der InsertItemTemplate-Vorlage an Daten mithilfe eines Datenbindungsausdrucks, der die Bind-Methode für bidirektionale Datenbindung beherrscht, wie das folgende Beispiel zeigt.

<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource" 
  SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"

  InsertCommand="INSERT INTO Employees(LastName, FirstName) VALUES (@LastName, @FirstName); 
                 SELECT @EmpID = SCOPE_IDENTITY()"
  UpdateCommand="UPDATE Employees SET LastName=@LastName, FirstName=@FirstName 
                   WHERE EmployeeID=@EmployeeID"
  DeleteCommand="DELETE Employees WHERE EmployeeID=@EmployeeID"

  ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
  OnInserted="EmployeeDetailsSqlDataSource_OnInserted"
  RunAt="server">

  <SelectParameters>
    <asp:Parameter Name="EmpID" Type="Int32" DefaultValue="0" />
  </SelectParameters>

  <InsertParameters>
    <asp:Parameter Name="EmpID" Direction="Output" Type="Int32" DefaultValue="0" />
  </InsertParameters>

</asp:sqlDataSource>
<asp:sqlDataSource ID="EmployeeDetailsSqlDataSource" 
  SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees WHERE EmployeeID = @EmpID"

  InsertCommand="INSERT INTO Employees(LastName, FirstName) VALUES (@LastName, @FirstName); 
                 SELECT @EmpID = SCOPE_IDENTITY()"
  UpdateCommand="UPDATE Employees SET LastName=@LastName, FirstName=@FirstName 
                   WHERE EmployeeID=@EmployeeID"
  DeleteCommand="DELETE Employees WHERE EmployeeID=@EmployeeID"

  ConnectionString="<%$ ConnectionStrings:NorthwindConnection %>"
  OnInserted="EmployeeDetailsSqlDataSource_OnInserted"
  RunAt="server">

  <SelectParameters>
    <asp:Parameter Name="EmpID" Type="Int32" DefaultValue="0" />
  </SelectParameters>

  <InsertParameters>
    <asp:Parameter Name="EmpID" Direction="Output" Type="Int32" DefaultValue="0" />
  </InsertParameters>

</asp:sqlDataSource>
Hinweis:

Bei Verwendung eines ListControl-Steuerelements, z. B. des DropDownList-Steuerelements, möchten Sie vielleicht, dass das DropDownList-Steuerelement an ein Feld in dem gegenwärtig gebundenen Datensatz gebunden wird, während die Listenwerte für das DropDownList-Steuerelement an eine eigene Liste möglicher Werte gebunden werden. Verwenden Sie in diesem Fall den Bind-Ausdruck, um die SelectedValue-Eigenschaft des DropDownList-Steuerelements an den aktuell gebundenen Datensatz zu binden, und legen Sie die Datenquelle, die DataTextField-Eigenschaft und die DataValueField-Eigenschaft des DropDownList-Steuerelements auf die Liste möglicher Werte fest.

Die EditItemTemplate-Vorlage wird geladen, wenn Benutzer auf eine Befehlsschaltfläche klicken, die den CommandName-Wert Edit aufweist. Sie können eine LinkButton-Befehlsschaltfläche hinzufügen, deren CommandName-Wert Update ist, um die aktuell gebundenen Werte zum Aktualisieren an das Datenquellensteuerelement zu senden. Sie können eine LinkButton-Befehlsschaltfläche hinzufügen, deren CommandName-Wert Cancel ist, um die aktuell gebundenen Werte zu verwerfen, das FormView-Steuerelement zu deaktivieren und die ItemTemplate-Vorlage zu laden.

Die InsertItemTemplate-Vorlage wird geladen, wenn Benutzer auf eine Befehlsschaltfläche klicken, deren CommandName-Wert New ist. Sie können eine LinkButton-Befehlsschaltfläche hinzufügen, deren CommandName-Wert Insert ist, um Werte für einen neuen Datensatz an das Datenquellensteuerelement zu senden. Sie können eine LinkButton-Befehlsschaltfläche hinzufügen, deren CommandName-Wert Cancel ist, um die neuen Werte zu verwerfen, das FormView-Steuerelement zu deaktivieren und die ItemTemplate-Vorlage zu laden.

Ein Beispiel für die Verwendung des FormView-Steuerelements zum Bearbeiten von Daten finden Sie unter Ändern von Daten mithilfe eines FormView-Webserversteuerelements.

Datenpagingvorlage

Im FormView-Steuerelement entspricht eine Datenseite genau einem gebundenen Datensatz. Wenn Sie die AllowPaging-Eigenschaft des FormView-Steuerelements auf true festlegen, fügt das FormView-Steuerelement automatisch Benutzeroberflächensteuerelemente für das Paging hinzu. Sie können die Benutzeroberfläche für das Paging anpassen, indem Sie eine PagerTemplate-Vorlage hinzufügen. Ausführliche Informationen finden Sie unter Paging in einem FormView-Webserversteuerelement.

Ein Beispiel einer PagerTemplate-Vorlage für ein FormView-Steuerelement finden Sie unter Paging in einem FormView-Webserversteuerelement.

Siehe auch

Konzepte

Übersicht über das FormView-Webserversteuerelement