(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde noch nicht bewertet - Dieses Thema bewerten.

DetailsView-Klasse

Zeigt die Werte eines einzelnen Datensatzes aus einer Datenquelle in einer Tabelle an. Dabei stellt jede Datenzeile ein Feld des Datensatzes dar. Das DetailsView-Steuerelement ermöglicht das Bearbeiten, Löschen und Einfügen von Datensätzen.

Namespace: System.Web.UI.WebControls
Assembly: System.Web (in system.web.dll)

[ControlValuePropertyAttribute("SelectedValue")] 
public class DetailsView : CompositeDataBoundControl, IDataItemContainer, INamingContainer, ICallbackContainer, 
	ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer
/** @attribute ControlValuePropertyAttribute("SelectedValue") */ 
public class DetailsView extends CompositeDataBoundControl implements IDataItemContainer, INamingContainer, 
	ICallbackContainer, ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer
ControlValuePropertyAttribute("SelectedValue") 
public class DetailsView extends CompositeDataBoundControl implements IDataItemContainer, INamingContainer, 
	ICallbackContainer, ICallbackEventHandler, IPostBackEventHandler, IPostBackContainer
Nicht zutreffend.

Das DetailsView-Steuerelement wird zum Anzeigen eines einzelnen Datensatzes aus einer Datenquelle in einer Tabelle verwendet. Dabei wird jedes Feld des Datensatzes in einer Zeile der Tabelle angezeigt. Es kann in Verbindung mit einem GridView-Steuerelement für Master-Detail-Szenarios verwendet werden. Das DetailsView-Steuerelement unterstützt die folgenden Features:

  • Die Bindung an Datenquellen-Steuerelemente (z. B. SqlDataSource).

  • Integrierte Einfügefunktionen.

  • Integrierte Aktualisierungsfunktionen und Löschfunktionen.

  • Integrierte Pagingfunktionen.

  • Programmgesteuerter Zugriff auf das DetailsView-Objektmodell zum dynamischen Festlegen von Eigenschaften, Behandeln von Ereignissen usw.

  • Anpassbare Darstellung durch Designs und Stile.

Zeilenfelder

Die einzelnen Datenzeilen im DetailsView-Steuerelement werden erstellt, indem das entsprechende Feldsteuerelement deklariert wird. Das Verhalten der Zeilen im Steuerelement wird von verschiedenen Zeilenfeldtypen bestimmt. Feldsteuerelemente werden von einem DataControlField abgeleitet. In der folgenden Tabelle werden die verschiedenen verwendbaren Zeilenfeldtypen aufgelistet.

Spaltenfeldtyp

Beschreibung

BoundField

Zeigt den Wert eines Felds in einer Datenquelle als Text an.

ButtonField

Zeigt im DetailsView-Steuerelement eine Befehlsschaltfläche an. Dadurch können Sie eine Zeile mit einem benutzerdefinierten Schaltflächensteuerelement anzeigen, z. B. mit der Schaltfläche Hinzufügen oder Entfernen.

CheckBoxField

Zeigt im DetailsView-Steuerelement ein Kontrollkästchen an. Dieser Zeilenfeldtyp wird in der Regel verwendet, um Felder mit einem booleschen Wert anzuzeigen.

CommandField

Zeigt integrierte Befehlsschaltflächen zum Ausführen von Bearbeitungs-, Einfüge- oder Löschvorgängen im DetailsView-Steuerelement an.

HyperLinkField

Zeigt den Wert eines Felds in einer Datenquelle als Hyperlink an. Dieser Zeilenfeldtyp ermöglicht Ihnen, ein zweites Feld an den URL des Hyperlinks zu binden.

ImageField

Zeigt ein Bild im DetailsView-Steuerelement an.

TemplateField

Zeigt für eine Zeile im DetailsView-Steuerelement entsprechend einer angegebenen Vorlage benutzerdefinierten Inhalt an. Dieser Zeilenfeldtyp ermöglicht Ihnen, ein benutzerdefiniertes Zeilenfeld zu erstellen.

Standardmäßig ist die AutoGenerateRows-Eigenschaft auf true festgelegt. Damit wird in der Datenquelle für jedes Feld eines bindbaren Typs automatisch ein gebundenes Zeilenfeldobjekt generiert. Gültige bindbare Typen sind String, DateTime, Decimal, Guid und die Gruppe der primitiven Typen. Jedes Feld wird in einer Zeile als Text angezeigt – in der Reihenfolge, in der die Felder in der Datenquelle angezeigt werden.

Mit dem automatischen Generieren der Zeilen ist eine schnelle und einfache Möglichkeit gegeben, jedes Feld im Datensatz anzuzeigen. Um jedoch die erweiterten Möglichkeiten des DetailsView-Steuerelements zu nutzen, müssen Sie die Zeilenfelder explizit so deklarieren, dass sie das DetailsView-Steuerelement enthalten. Legen Sie zum Deklarieren der Zeilenfelder die AutoGenerateRows-Eigenschaft zunächst auf false fest. Fügen Sie dann <Fields> als Start- und Endtag zwischen dem Start- und dem Endtag des DetailsView-Steuerelements ein. Listen Sie abschließend zwischen dem öffnenden und schließenden <Fields>-Tag die einzufügenden Zeilenfelder auf. Die angegebenen Zeilenfelder werden in der Reihenfolge, in der sie aufgeführt sind, der Fields-Auflistung hinzugefügt. Mit der Fields-Auflistung können Sie die Zeilenfelder im DetailsView-Steuerelement programmgesteuert verwalten.

HinweisHinweis:

Automatisch generierte Zeilenfelder werden der Fields-Auflistung nicht hinzugefügt.

HinweisHinweis:

Explizit deklarierte Zeilenfelder können in Kombination mit automatisch generierten Zeilenfeldern angezeigt werden. Wenn Sie beide Zeilenfeldarten verwenden, werden zuerst die explizit deklarierten Zeilenfelder und anschließend die automatisch generierten Zeilenfelder wiedergegeben.

Binden an Daten

Das DetailsView-Steuerelement kann an ein Datenquellen-Steuerelement, z. B. SqlDataSource oder AccessDataSource gebunden werden, oder an jede beliebige Datenquelle, die die System.Collections.IEnumerable-Schnittstelle implementiert, z. B. System.Data.DataView, System.Collections.ArrayList oder System.Collections.Hashtable. Mit einer der folgenden Methoden können Sie das DetailsView-Steuerelement an den entsprechenden Datenquellentyp binden:

  • Für die Bindung an ein Datenquellen-Steuerelement legen Sie die DataSourceID-Eigenschaft des DetailsView-Steuerelements auf den ID-Wert des Datenquellen-Steuerelements fest. Das DetailsView-Steuerelement wird automatisch an das angegebene Datenquellen-Steuerelement gebunden. Dies ist die bevorzugte Methode für die Bindung an Daten.

  • Zum Binden an eine Datenquelle, die die System.Collections.IEnumerable-Schnittstelle implementiert, legen Sie die DataSource-Eigenschaft des DetailsView-Steuerelements programmgesteuert auf die Datenquelle fest, und rufen Sie anschließend die DataBind-Methode auf.

Weitere Informationen über die Datenbindung finden Sie unter Binden an Datenbanken.

Security

Dieses Steuerelement kann zum Anzeigen von Benutzereingaben verwendet werden, die u. U. bösartige Clientskripts enthalten. Überprüfen Sie alle von einem Client gesendeten Informationen auf ausführbare Skripts, SQL-Anweisungen oder anderen Code, bevor Sie sie in der Anwendung anzeigen. ASP.NET stellt ein Feature zur Anfragevalidierung von Eingaben bereit, um Skripts und HTML in Benutzereingaben zu blockieren. Weitere Informationen finden Sie unter Übersicht über Skriptangriffe. Validierungs-Serversteuerelemente werden ebenfalls bereitgestellt, um Benutzereingaben zu bewerten. Weitere Informationen finden Sie unter Syntax von Validierungs-Serversteuerelementen.

Datenoperationen

Das DetailsView-Steuerelement bietet dem Benutzer integrierte Funktionen zum Aktualisieren, Löschen, Einfügen und Durchblättern von Elementen im Steuerelement. Wenn das DetailsView-Steuerelement an ein Datenquellen-Steuerelement gebunden ist, kann das DetailsView-Steuerelement die Funktionen des Datenquellen-Steuerelements nutzen und automatische Aktualisierungs-, Lösch-, Einfüge- und Pagingfunktionen bereitstellen.

HinweisHinweis:

Das DetailsView-Steuerelement kann Aktualisierungs- Lösch-, Einfüge- sowie Pagingvorgänge für andere Datenquellentypen unterstützen. Sie müssen die Implementierung für diese Vorgänge allerdings in einem entsprechenden Ereignishandler bereitstellen. Weitere Informationen finden Sie unter ItemDeleting, ItemInserting und ItemUpdating.

Das DetailsView-Steuerelement kann automatisch ein CommandField-Zeilenfeld mit einer Schaltfläche Bearbeiten, Löschen oder Neu hinzufügen, indem die entsprechenden Eigenschaften AutoGenerateEditButton, AutoGenerateDeleteButton bzw. AutoGenerateInsertButton auf true festgelegt werden. Während durch das Klicken auf die Schaltfläche Löschen der markierte Datensatz umgehend gelöscht wird, wechselt das DetailsView-Steuerelement beim Klicken auf die Schaltfläche Bearbeiten oder die Schaltfläche Neu in den Bearbeitungsmodus bzw. in den Einfügemodus. Im Bearbeitungsmodus wird die Schaltfläche Bearbeiten durch eine Schaltfläche Aktualisieren und eine Schaltfläche Abbrechen ersetzt. Dem Datentyp des Felds werden entsprechende Eingabesteuerelemente (z. B. ein TextBox-Steuerelement oder ein CheckBox-Steuerelement) mit einem Feldwert angezeigt, der geändert werden kann. Über das Klicken auf die Schaltfläche Aktualisieren wird der Datensatz in der Datenquelle aktualisiert, während durch das Klicken auf die Schaltfläche Abbrechen alle Änderungen verworfen werden. Entsprechend wird im Einfügemodus die Schaltfläche Neu durch eine Schaltfläche Einfügen und eine Schaltfläche Abbrechen ersetzt, und es werden leere Eingabesteuerelemente angezeigt, in die Werte für den neuen Datensatz eingegeben werden können.

HinweisHinweis:

Zudem können Sie die Schaltflächen Aktualisieren, Löschen und Einfügen in den Zeilenfeldern ButtonField, CommandField und TemplateField manuell definieren. Das DetailsView-Steuerelement erkennt Schaltflächen, bei denen die CommandName-Eigenschaft auf "Bearbeiten", "Aktualisieren", "Löschen", "Neu", "Einfügen" oder "Abbrechen" festgelegt wurde. Sie müssen jedoch noch die Funktionalität angeben. Weitere Informationen finden Sie unter ItemDeleting, ItemInserting und ItemUpdating.

Das DetailsView-Steuerelement bietet ein Pagingfeature, mit dem zu anderen Datensätzen in der Datenquelle navigiert werden kann. Wenn Seitennavigationssteuerelemente aktiviert sind, werden sie in einer Pagerzeile angezeigt. Um Paging zu aktivieren, legen Sie die AllowPaging-Eigenschaft auf true fest. Die Pagerzeile kann mit der PagerStyle-Eigenschaft und der PagerSettings-Eigenschaft angepasst werden.

Anpassen der Benutzeroberfläche

Sie können die Darstellung des DetailsView-Steuerelements anpassen, indem Sie die Stileigenschaften für die verschiedenen Teile des Steuerelements festlegen. In der folgenden Tabelle sind die verschiedenen Stileigenschaften aufgelistet.

Stileigenschaft

Beschreibung

AlternatingRowStyle

Die Stileinstellungen für die abwechselnden Datenzeilen im DetailsView-Steuerelement. Wenn diese Eigenschaft festgelegt ist, werden die Datenzeilen abwechselnd entsprechend den RowStyle-Einstellungen und den AlternatingRowStyle-Einstellungen angezeigt.

CommandRowStyle

Die Stileinstellungen für die Zeile, die die integrierten Befehlsschaltflächen im DetailsView-Steuerelement enthält.

EditRowStyle

Die Stileinstellungen für die Datenzeilen, wenn sich das DetailsView-Steuerelement im Bearbeitungsmodus befindet.

EmptyDataRowStyle

Die Stileinstellungen für die leere Datenzeile, die im DetailsView-Steuerelement angezeigt wird, wenn in der Datenquelle keine Datensätze enthalten sind.

FooterStyle

Die Stileinstellungen für die Footerzeile des DetailsView-Steuerelements.

HeaderStyle

Die Stileinstellungen für die Headerzeile des DetailsView-Steuerelements.

InsertRowStyle

Die Stileinstellungen für die Datenzeilen, wenn sich das DetailsView-Steuerelement im Einfügemodus befindet.

PagerStyle

Die Stileinstellungen für die Pagerzeile des DetailsView-Steuerelements.

RowStyle

Die Stileinstellungen für die Datenzeilen im DetailsView-Steuerelement. Wenn die AlternatingRowStyle-Eigenschaft ebenfalls festgelegt ist, werden die Datenzeilen abwechselnd entsprechend den RowStyle-Einstellungen und den AlternatingRowStyle-Einstellungen angezeigt.

FieldHeaderStyle

Die Stileinstellungen für die Headerspalte des DetailsView-Steuerelements.

Ereignisse

Das DetailsView-Steuerelement stellt mehrere Ereignisse bereit, die für die Programmierung verwendet werden können. Dadurch können Sie bei jedem Auftreten eines Ereignisses eine benutzerdefinierte Routine ausführen. In der folgenden Tabelle werden die vom DetailsView-Steuerelement unterstützten Ereignisse aufgelistet. Das DetailsView-Steuerelement erbt außerdem diese Ereignisse von seinen Basisklassen: DataBinding, DataBound, Disposed, Init, Load, PreRender und Render.

Ereignis

Beschreibung

ItemCommand

Tritt ein, wenn im DetailsView-Steuerelement auf eine Schaltfläche geklickt wird.

ItemCreated

Tritt ein, nachdem alle DetailsViewRow-Objekte im DetailsView-Steuerelement erstellt wurden. Dieses Ereignis wird häufig verwendet, um die Werte eines Datensatzes zu ändern, bevor dieser angezeigt wird.

ItemDeleted

Tritt ein, wenn auf eine Schaltfläche Löschen geklickt wird, allerdings nachdem das DetailsView-Steuerelement den Datensatz aus der Datenquelle löscht. Dieses Ereignis wird häufig verwendet, um die Ergebnisse des Löschvorgangs zu überprüfen.

ItemDeleting

Tritt ein, wenn auf eine Schaltfläche Löschen geklickt wird, allerdings bevor das DetailsView-Steuerelement den Datensatz aus der Datenquelle löscht. Dieses Ereignis wird häufig verwendet, um den Löschvorgang abzubrechen.

ItemInserted

Tritt ein, wenn auf eine Schaltfläche Einfügen geklickt wird, allerdings nachdem das DetailsView-Steuerelement den Datensatz einfügt. Dieses Ereignis wird häufig verwendet, um die Ergebnisse des Einfügevorgangs zu überprüfen.

ItemInserting

Tritt ein, wenn auf eine Schaltfläche Einfügen geklickt wird, allerdings bevor das DetailsView-Steuerelement den Datensatz einfügt. Dieses Ereignis wird häufig verwendet, um den Einfügevorgang abzubrechen.

ItemUpdated

Tritt ein, wenn auf eine Schaltfläche Aktualisieren geklickt wird, allerdings nachdem das DetailsView-Steuerelement die Zeile aktualisiert. Dieses Ereignis wird häufig verwendet, um die Ergebnisse des Aktualisierungsvorgangs zu überprüfen.

ItemUpdating

Tritt ein, wenn auf eine Schaltfläche Aktualisieren geklickt wird, allerdings bevor das DetailsView-Steuerelement den Datensatz aktualisiert. Dieses Ereignis wird häufig verwendet, um den Aktualisierungsvorgang abzubrechen.

ModeChanged

Tritt ein, nachdem das DetailsView-Steuerelement in einen anderen Modus gewechselt ist (in den Bearbeitungsmodus, den Einfügemodus oder den schreibgeschützten Modus). Dieses Ereignis wird oft zum Ausführen einer Aufgabe verwendet, wenn das DetailsView-Steuerelement den Modus ändert.

ModeChanging

Tritt ein, bevor das DetailsView-Steuerelement in einen anderen Modus gewechselt ist (in den Bearbeitungsmodus, den Einfügemodus oder den schreibgeschützten Modus). Dieses Ereignis wird häufig verwendet, um eine Modusänderung abzubrechen.

PageIndexChanged

Tritt ein, wenn auf eine der Pagerschaltflächen geklickt wird, allerdings nachdem das DetailsView-Steuerelement den Pagingvorgang behandelt hat. Dieses Ereignis wird in der Regel verwendet, wenn eine Aufgabe ausgeführt werden soll, nachdem zu einem anderen Datensatz im Steuerelement navigiert wurde.

PageIndexChanging

Tritt ein, wenn auf eine der Pagerschaltflächen geklickt wird, allerdings bevor das DetailsView-Steuerelement den Pagingvorgang tatsächlich behandelt. Dieses Ereignis wird häufig verwendet, um den Pagingvorgang abzubrechen.

Eingabehilfen

Das für dieses Steuerelement standardmäßig wiedergegebene Markup entspricht eventuell nicht den Standards für die Eingabehilfen wie beispielsweise den Richtlinien der Web Content Accessibility Guidelines 1.0 (WCAG) mit der Priorität 1. Details über die Unterstützung von Eingabehilfen für dieses Steuerelement finden Sie unter Steuerelemente und Eingabehilfen von ASP.NET.

Im folgenden Codebeispiel wird veranschaulicht, wie ein DetailsView-Steuerelement zusammen mit einem GridView-Steuerelement für ein einfaches Master-Detail-Szenario verwendet wird. Anschließend werden die Details eines im GridView-Steuerelement ausgewählten Elements angezeigt.

<%@ 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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
  <form id="form1" runat="server">
    <div>
      <table>
        <tr>
          <td>
            <asp:GridView ID="GridView1" runat="server" 
              AutoGenerateColumns="False" DataSourceID="Customers"
              DataKeyNames="CustomerID">
              <Columns>
                <asp:CommandField ShowSelectButton="True" />
                <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
                <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
              </Columns>
            </asp:GridView>
          </td>
          <td valign="top">
            <asp:DetailsView ID="DetailsView1" runat="server" 
              AutoGenerateRows="True" DataKeyNames="CustomerID"
              DataSourceID="Details" Height="50px" Width="301px">
            </asp:DetailsView>
          </td>
        </tr>
      </table>
      &nbsp;&nbsp;
      <asp:SqlDataSource ID="Details" runat="server" 
        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = @CustomerID)">
        <SelectParameters>
          <asp:ControlParameter ControlID="GridView1" Name="CustomerID" 
            PropertyName="SelectedValue"
            Type="String" />
        </SelectParameters>
      </asp:SqlDataSource>
      <asp:SqlDataSource ID="Customers" runat="server" 
        ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
        SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] FROM [Customers]">
      </asp:SqlDataSource>
    </div>
  </form>
</body>
</html>

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe des DetailsView-Steuerelements Datensätze hinzugefügt, gelöscht und bearbeitet werden.


<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
  void CustomerDetail_ItemInserted(object sender, 
    DetailsViewInsertedEventArgs e)
  {
    // Refresh the GridView control after a new record is inserted 
    // in the DetailsView control.
    CustomersView.DataBind();
  }

  void CustomerDetail_ItemInserting(object sender, 
    DetailsViewInsertEventArgs e)
  {
    // Iterate though the values entered by the user and HTML encode 
    // the values. This helps prevent malicious values from being 
    // stored in the data source.
    for (int i = 0; i < e.Values.Count; i++)
    {
      if (e.Values[i] != null)
      {
        e.Values[i] = Server.HtmlEncode(e.Values[i].ToString());
      }
    }
  }

  void CustomerDetail_ItemUpdated(object sender, 
    DetailsViewUpdatedEventArgs e)
  {
    // Refresh the GridView control after a new record is updated 
    // in the DetailsView control.
    CustomersView.DataBind();
  }

  void CustomerDetail_ItemUpdating(object sender, 
    DetailsViewUpdateEventArgs e)
  {
    // Iterate though the values entered by the user and HTML encode 
    // the values. This helps prevent malicious values from being 
    // stored in the data source.
    for (int i = 0; i < e.NewValues.Count; i++)
    {
      if (e.NewValues[i] != null)
      {
        e.NewValues[i] = Server.HtmlEncode(e.NewValues[i].ToString());
      }
    }
  }

  void CustomerDetail_ItemDeleted(object sender, 
    DetailsViewDeletedEventArgs e)
  {
    // Refresh the GridView control after a new record is updated 
    // in the DetailsView control.
    CustomersView.DataBind();
  }
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>
      DetailsView Example</title>
</head>
<body>
  <form id="Form1" runat="server">
    <h3>
      DetailsView Example</h3>
    <table cellspacing="10">
      <tr>
        <td>
          <!-- Use a GridView control in combination with      -->
          <!-- a DetailsView control to display master-detail  -->
          <!-- information. When the user selects a store from -->
          <!-- GridView control, the customers//s detailed     -->
          <!-- information is displayed in the DetailsView     -->
          <!-- control.                                        -->
          <asp:GridView ID="CustomersView" DataSourceID="Customers" 
            AutoGenerateColumns="False"
            DataKeyNames="CustomerID" runat="server">
            <HeaderStyle BackColor="Blue" ForeColor="White" />
            <Columns>
              <asp:CommandField ShowSelectButton="True" />
              <asp:BoundField DataField="ContactName" 
                HeaderText="ContactName" />
              <asp:BoundField DataField="CompanyName" 
                HeaderText="CompanyName" />
            </Columns>
          </asp:GridView>
        </td>
        <td valign="top">
          <asp:DetailsView ID="CustomerDetail" 
            DataSourceID="Details" AutoGenerateRows="false"
            AutoGenerateInsertButton="true" 
            AutoGenerateEditButton="true" 
            AutoGenerateDeleteButton="true"
            EmptyDataText="No records." 
            DataKeyNames="CustomerID" GridLines="Both" 
            OnItemInserted="CustomerDetail_ItemInserted"
            OnItemInserting="CustomerDetail_ItemInserting" 
            OnItemUpdated="CustomerDetail_ItemUpdated"
            OnItemUpdating="CustomerDetail_ItemUpdating" 
            OnItemDeleted="CustomerDetail_ItemDeleted"
            runat="server">
            <HeaderStyle BackColor="Navy" ForeColor="White" />
            <RowStyle BackColor="White" />
            <AlternatingRowStyle BackColor="LightGray" />
            <EditRowStyle BackColor="LightCyan" />
            <Fields>
              <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" ReadOnly="True" />
              <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
              <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" />
              <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
              <asp:BoundField DataField="Address" HeaderText="Address" />
              <asp:BoundField DataField="City" HeaderText="City" />
              <asp:BoundField DataField="Region" HeaderText="Region" />
              <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" />
              <asp:BoundField DataField="Country" HeaderText="Country" />
              <asp:BoundField DataField="Phone" HeaderText="Phone" />
              <asp:BoundField DataField="Fax" HeaderText="Fax" />
            </Fields>
          </asp:DetailsView>
        </td>
      </tr>
    </table>
    <!-- This example uses Microsoft SQL Server and connects -->
    <!-- to the Northwind sample database.                   -->
    <!-- It is strongly recommended that each data-bound     -->
    <!-- control uses a separate data source control.        -->
    <asp:SqlDataSource ID="Customers" runat="server" 
      ConnectionString=
        "<%$ ConnectionStrings:NorthwindConnectionString %>"
      SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] 
        FROM [Customers]">
    </asp:SqlDataSource>
    <!-- Add a filter to the data source control for the     -->
    <!-- DetailsView control to display the details of the   -->
    <!-- store selected in the GridView control.             -->
    <asp:SqlDataSource ID="Details" 
      ConnectionString=
        "<%$ ConnectionStrings:NorthwindConnectionString %>"
      runat="server" 
      SelectCommand="SELECT * FROM [Customers] 
        WHERE ([CustomerID] = @CustomerID)"
      DeleteCommand="DELETE FROM [Customers] 
        WHERE [CustomerID] = @CustomerID"
      InsertCommand="INSERT INTO [Customers] ([CustomerID], 
        [CompanyName], [ContactName], [ContactTitle], [Address], 
        [City], [Region], [PostalCode], [Country], [Phone], [Fax]) 
        VALUES (@CustomerID, @CompanyName, @ContactName, @ContactTitle, 
        @Address, @City, @Region, @PostalCode, @Country, @Phone, @Fax)"
      UpdateCommand="UPDATE [Customers] SET [CompanyName] = @CompanyName, 
        [ContactName] = @ContactName, [ContactTitle] = @ContactTitle, 
        [Address] = @Address, [City] = @City, [Region] = @Region, 
        [PostalCode] = @PostalCode, [Country] = @Country, 
        [Phone] = @Phone, [Fax] = @Fax 
        WHERE [CustomerID] = @CustomerID">
      <SelectParameters>
        <asp:ControlParameter ControlID="CustomersView" 
          Name="CustomerID" PropertyName="SelectedValue"
          Type="String" />
      </SelectParameters>
      <DeleteParameters>
        <asp:Parameter Name="CustomerID" Type="String" />
      </DeleteParameters>
      <UpdateParameters>
        <asp:Parameter Name="CompanyName" Type="String" />
        <asp:Parameter Name="ContactName" Type="String" />
        <asp:Parameter Name="ContactTitle" Type="String" />
        <asp:Parameter Name="Address" Type="String" />
        <asp:Parameter Name="City" Type="String" />
        <asp:Parameter Name="Region" Type="String" />
        <asp:Parameter Name="PostalCode" Type="String" />
        <asp:Parameter Name="Country" Type="String" />
        <asp:Parameter Name="Phone" Type="String" />
        <asp:Parameter Name="Fax" Type="String" />
        <asp:Parameter Name="CustomerID" Type="String" />
      </UpdateParameters>
      <InsertParameters>
        <asp:Parameter Name="CustomerID" Type="String" />
        <asp:Parameter Name="CompanyName" Type="String" />
        <asp:Parameter Name="ContactName" Type="String" />
        <asp:Parameter Name="ContactTitle" Type="String" />
        <asp:Parameter Name="Address" Type="String" />
        <asp:Parameter Name="City" Type="String" />
        <asp:Parameter Name="Region" Type="String" />
        <asp:Parameter Name="PostalCode" Type="String" />
        <asp:Parameter Name="Country" Type="String" />
        <asp:Parameter Name="Phone" Type="String" />
        <asp:Parameter Name="Fax" Type="String" />
      </InsertParameters>
    </asp:SqlDataSource>
  </form>
</body>
</html>

Im folgenden Codebeispiel wird veranschaulicht, wie dem DetailsView-Steuerelement Zeilenfelder deklarativ hinzugefügt werden.

<%@ 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 runat="server">
    <title>ASP.NET Example</title>
</head>
<body>
  <form id="Form1" runat="server">
    <table cellspacing="10">
      <tr>
        <td>
          <!-- Use a GridView control in combination with      -->
          <!-- a DetailsView control to display master-detail  -->
          <!-- information. When the user selects a store from -->
          <!-- GridView control, the store's detailed          -->
          <!-- information is displayed in the DetailsView     -->
          <!-- control.                                        -->
          <asp:GridView ID="GridView1" runat="server" 
            DataSourceID="Customers" AutoGenerateColumns="False" 
            DataKeyNames="CustomerID">
            <Columns>
              <asp:CommandField ShowSelectButton="True" />
              <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
              <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
            </Columns>
          </asp:GridView>
        </td>
        <td valign="top">
          <asp:DetailsView ID="DetailsView" runat="server"
            DataSourceID="Details" AutoGenerateRows="false"
            DataKeyNames="CustomerID" >
            <HeaderStyle BackColor="Navy" ForeColor="White" />
            <Fields>
              <asp:BoundField DataField="CustomerID" HeaderText="CustomerID" 
                ReadOnly="True" />
              <asp:BoundField DataField="ContactName" HeaderText="ContactName" />
              <asp:BoundField DataField="ContactTitle" HeaderText="ContactTitle" />
              <asp:BoundField DataField="CompanyName" HeaderText="CompanyName" />
              <asp:BoundField DataField="City" HeaderText="City" />
              <asp:BoundField DataField="Region" HeaderText="Region" />
              <asp:BoundField DataField="PostalCode" HeaderText="PostalCode" />
              <asp:BoundField DataField="Country" HeaderText="Country" />
            </Fields>
          </asp:DetailsView>
        </td>
      </tr>
    </table>
    <!-- This example uses Microsoft SQL Server and connects -->
    <!-- to the Northwind sample database.                        -->
    <!-- It is strongly recommended that each data-bound     -->
    <!-- control uses a separate data source control.        -->
    <asp:SqlDataSource ID="Customers" runat="server" 
      ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
      SelectCommand="SELECT [CompanyName], [ContactName], [CustomerID] FROM [Customers]">
    </asp:SqlDataSource>
    <!-- Add a filter to the data source control for the     -->
    <!-- DetailsView control to display the details of the   -->
    <!-- store selected in the GridView control.             -->
    <asp:SqlDataSource ID="Details" runat="server" 
      ConnectionString="<%$ ConnectionStrings:NorthwindConnectionString %>"
      SelectCommand="SELECT * FROM [Customers] WHERE ([CustomerID] = @CustomerID)">
      <SelectParameters>
        <asp:ControlParameter ControlID="GridView1" Name="CustomerID" 
          PropertyName="SelectedValue"
          Type="String" />
      </SelectParameters>
    </asp:SqlDataSource>
  </form>
</body>
</html>

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Microsoft .NET Framework 3.0 wird unter Windows Vista, Microsoft Windows XP SP2 und Windows Server 2003 SP1 unterstützt.

.NET Framework

Unterstützt in: 3.0, 2.0
Fanden Sie dies hilfreich?
(1500 verbleibende Zeichen)
Vielen Dank für Ihr Feedback.
Anzeigen:
© 2014 Microsoft. Alle Rechte vorbehalten.