(0) exportieren Drucken
Alle erweitern
Dieser Artikel wurde manuell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen.
Übersetzung
Original

Binden an Daten mit einem Datenquellensteuerelement

Datenquellensteuerelemente stellen eine umfassende Erweiterung der Fähigkeiten datengebundener Steuerelemente dar, z. B. GridView, FormView und DetailsView. Die Kombination von Datenquellensteuerelementen mit datengebundenen Steuerelementen ermöglicht das Abrufen, Ändern, Sortieren und Filtern von Daten sowie das Blättern durch die Daten mit wenig oder ganz ohne Code.

Sie können in datengebundenen Steuerelementen mit Daten arbeiten, indem Sie das datengebundene Steuerelement an ein Datenquellensteuerelement binden, z. B. an das LinqDataSource-Steuerelement, das ObjectDataSource-Steuerelement oder das SqlDataSource-Steuerelement. Das Datenquellensteuerelement stellt eine Verbindung zu einer Datenquelle her, z. B. einer Datenbank, einer Entitätsklasse oder einem Objekt der mittleren Ebene, und ruft Daten ab oder aktualisiert diese. Das datengebundene Steuerelement kann diese Daten dann verwenden. Um die Datenbindung herzustellen, legen Sie die DataSourceID-Eigenschaft des datengebundenen Steuerelements so fest, dass sie auf ein Datenquellensteuerelement verweist. Wenn ein datengebundenes Steuerelement an ein Datenquellensteuerelement gebunden ist, ist für Datenoperationen nur wenig oder gar kein Code erforderlich. Das datengebundene Steuerelement kann automatisch die vom Datenquellensteuerelement bereitgestellten Datendienste nutzen.

HinweisHinweis

In früheren Versionen von ASP.NET wurden datengebundene Steuerelemente mithilfe der DataSource-Eigenschaft gebunden. Dabei musste für Operationen wie das Anzeigen, Paging, Sortieren, Bearbeiten und Löschen von Daten sowie das Blättern in den Daten Code geschrieben werden. Obwohl Sie die Datenbindung von Steuerelementen mithilfe der DataSource-Eigenschaft herstellen und vorhandenen Code verwenden können, kann die Datenbindung stattdessen nun auch mithilfe der DataSourceID-Eigenschaft hergestellt werden. In der Regel wird durch die Verwendung der DataSourceID-Eigenschaft mehr automatische Funktionalität erzielt als mit der DataSource-Eigenschaft.

Das folgende Beispiel zeigt ein FormView-Steuerelement, das zum Anzeigen von Daten an ein LinqDataSource-Steuerelement gebunden ist. Damit das Beispiel funktioniert, müssen Sie Klassen erstellen, die die Datenbank und die Tabelle darstellen. Sie können diese Klassen mit O/R-Designer erstellen. Weitere Informationen hierzu finden Sie unter Object Relational Designer (O/R-Designer).


<%@ 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>FormView Example</title>
</head>
<body>
    <form id="form1" runat="server">
      <h3>FormView Example</h3>
        <table cellspacing="10"> 
          <tr>               
            <td valign="top">

              <asp:FormView ID="ProductsFormView"
                DataSourceID="LinqDataSource1"
                AllowPaging="true"
                runat="server">

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

                <ItemTemplate>
                  <table>
                    <tr>
                      <td align="right"><b>Product ID:</b></td>
                      <td><asp:Label id="ProductIDLabel" runat="server" Text='<%# Eval("ProductID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Product Name:</b></td>
                      <td><asp:Label id="ProductNameLabel" runat="server" Text='<%# Eval("ProductName") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Category ID:</b></td>
                      <td><asp:Label id="CategoryIDLabel" runat="server" Text='<%# Eval("CategoryID") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Quantity Per Unit:</b></td>
                      <td><asp:Label id="QuantityPerUnitLabel" runat="server" Text='<%# Eval("QuantityPerUnit") %>' /></td>
                    </tr>
                    <tr>
                      <td align="right"><b>Unit Price:</b></td>
                      <td><asp:Label id="UnitPriceLabel" runat="server" 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:LinqDataSource 
            ContextTypeName="NorthwindDataContext" 
            TableName="Products"
            ID="LinqDataSource1"  
            runat="server">
        </asp:LinqDataSource>

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


Weitere Informationen zu Datenquellensteuerelementen finden Sie unter Datengebundene Webserversteuerelemente.

Die Art und Weise, wie ein Datenquellensteuerelement Daten abruft, wird durch das Steuerelement selbst bestimmt. Das ObjectDataSource-Steuerelement liest Daten, indem es die in der SelectMethod-Eigenschaft angegebene Methode aufruft. Das folgende Beispiel zeigt ein ObjectDataSource-Steuerelement, das Daten mithilfe der GetAllEmployees-Methode der EmployeeLogic-Klasse zurückgibt.


<%@ 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>ObjectDataSource - C# Example</title>
  </head>
  <body>
    <form id="Form1" method="post" runat="server">

        <asp:gridview
          id="GridView1"
          runat="server"
          datasourceid="ObjectDataSource1" />

        <asp:objectdatasource
          id="ObjectDataSource1"
          runat="server"
          selectmethod="GetAllEmployees"
          typename="Samples.AspNet.CS.EmployeeLogic" />

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


Weitere Informationen finden Sie unter Übersicht über das ObjectDataSource-Webserversteuerelement.

Das SqlDataSource-Steuerelement und das AccessDataSource-Steuerelement wählen Daten aus, indem sie die in der SelectCommand-Eigenschaft angegebene SQL-Abfrage ausführen. Das folgende Beispiel zeigt ein SqlDataSource-Steuerelement, das Daten aus der Tabelle Employees der Beispieldatenbank Northwind zurückgibt:


<%@ 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">
      <asp:SqlDataSource
          id="SqlDataSource1"
          runat="server"
          DataSourceMode="DataReader"
          ConnectionString="<%$ ConnectionStrings:MyNorthwind%>"
          SelectCommand="SELECT LastName FROM Employees">
      </asp:SqlDataSource>

      <asp:ListBox
          id="ListBox1"
          runat="server"
          DataTextField="LastName"
          DataSourceID="SqlDataSource1">
      </asp:ListBox>

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


Weitere Informationen finden Sie unter Auswählen von Daten mithilfe des SqlDataSource-Steuerelements.

Wenn Sie das LinqDataSource-Steuerelement verwenden, ohne die Select-Eigenschaft dieses Steuerelements festzulegen, gibt das Steuerelement Daten für alle Eigenschaften in der Datenklasse zurück. Sie können eine Teilmenge der Eigenschaften angeben oder neue Werte berechnen, indem Sie die Select-Eigenschaft festlegen. Das folgende Beispiel zeigt ein LinqDataSource-Steuerelement, das drei Eigenschaften aus einer Datenquelle zurückgibt, die zusätzliche Eigenschaften enthält.


<asp:LinqDataSource 
    ContextTypeName="ExampleDataContext" 
    TableName="Products" 
    Select="new(Name, Category, Price)"
    ID="LinqDataSource1" 
    runat="server">
</asp:LinqDataSource>
<asp:GridView 
    DataSourceID="LinqDataSource1"
    ID="GridView1" 
    runat="server">
</asp:GridView>


Die XmlDataSource kann nicht verwendet werden, um bestimmte Elemente aus den XML-Quelldaten auszuwählen. Sie können jedoch mithilfe der XPath-Eigenschaft ein Filterkriterium angeben. Weitere Informationen finden Sie unter Filtern von Daten mit dem XmlDataSource-Steuerelement.

Das LinqDataSource-Steuerelement, das ObjectDataSource-Steuerelement und das SqlDataSource-Steuerelement kann so konfiguriert werden, dass Benutzer Daten ändern können. Weitere Informationen finden Sie unter Ändern von Daten mit Datenquellensteuerelementen.

Community-Beiträge

HINZUFÜGEN
Anzeigen:
© 2014 Microsoft