XPathBinder Klasse

Definition

Stellt Unterstützung für RAD-Designer (Rapid Application Development) beim Analysieren von Datenbindungsausdrücken bereit, die XPath-Ausdrücke verwenden. Diese Klasse kann nicht vererbt werden.

public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
Vererbung
XPathBinder

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie XmlDataSource ein Steuerelement mit einem vorlagenbasierten Repeater Steuerelement verwendet wird, um XML-Daten anzuzeigen. In diesem Beispiel sind zwei Teile enthalten:

  • Eine Web Forms Seite, auf der XML-Daten angezeigt werden.

  • Eine XML-Datei, die die Daten enthält.

Im ersten Teil des Beispiels wird eine Web Forms Seite angezeigt, auf die XML-Daten angezeigt werden, auf die über ein XmlDataSource Steuerelement zugegriffen wird. Ein Repeater Steuerelement verwendet eine vereinfachte Eval(Object, String) Methodensyntax, um an Datenelemente innerhalb des XML-Dokuments zu binden, das dargestellt XmlDataSource wird. Es verwendet die Select(Object, String) Methode, um eine IEnumerable Liste abzurufen und sie als spät gebundene DataSource Eigenschaft für das Repeater Steuerelement zuzuweisen.

<%@ 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>Order</title>
</head>
<body>
    <form id="form1" runat="server">
      <asp:XmlDataSource
        runat="server"
        id="XmlDataSource1"
        XPath="orders/order"
        DataFile="order.xml" />

      <asp:Repeater ID="Repeater1"
        runat="server"
        DataSourceID="XmlDataSource1">
        <ItemTemplate>
            <h2>Order</h2>
            <table>
              <tr>
                <td>Customer</td>
                <td><%#XPath("customer/@id")%></td>
                <td><%#XPath("customername/firstn")%></td>
                <td><%#XPath("customername/lastn")%></td>
              </tr>
              <tr>
                <td>Ship To</td>
                <td><%#XPath("shipaddress/address1")%></font></td>
                <td><%#XPath("shipaddress/city")%></td>
                <td><%#XPath("shipaddress/state")%>,
                    <%#XPath("shipaddress/zip")%></td>
              </tr>
            </table>
            <h3>Order Summary</h3>
            <asp:Repeater ID="Repeater2"
                 DataSource='<%#XPathSelect("summary/item")%>'
                 runat="server">
                <ItemTemplate>
                     <b><%#XPath("@dept")%></b> -
                         <%#XPath(".")%><br />
                </ItemTemplate>
            </asp:Repeater>
            <hr />
        </ItemTemplate>
    </asp:Repeater>

  </form>
  </body>
</html>
<%@ 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 runat="server">
    <title>Order</title>
</head>
<body> 
    <form id="form1" runat="server">
      <asp:XmlDataSource
        runat="server"
        id="XmlDataSource1"
        XPath="orders/order"
        DataFile="order.xml" />

      <asp:Repeater ID="Repeater1"
        runat="server"
        DataSourceID="XmlDataSource1">
        <ItemTemplate>
            <h2>Order</h2>
            <table>
              <tr>
                <td>Customer</td>
                <td><%#XPath("customer/@id")%></td>
                <td><%#XPath("customername/firstn")%></td>
                <td><%#XPath("customername/lastn")%></td>
              </tr>
              <tr>
                <td>Ship To</td>
                <td><%#XPath("shipaddress/address1")%></font></td>
                <td><%#XPath("shipaddress/city")%></td>
                <td><%#XPath("shipaddress/state")%>,
                    <%#XPath("shipaddress/zip")%></td>
              </tr>
            </table>
            <h3>Order Summary</h3>
            <asp:Repeater ID="Repeater2"
                 DataSource='<%#XPathSelect("summary/item")%>'
                 runat="server">
                <ItemTemplate>
                     <b><%#XPath("@dept")%></b> -
                         <%#XPath(".")%><br />
                </ItemTemplate>
            </asp:Repeater>
            <hr />
        </ItemTemplate>
    </asp:Repeater>

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

Das zweite Beispiel stellt die XML-Datei Order.xml bereit, die als Quelle der daten verwendet wird, die in der oben definierten Web Forms Seite angezeigt wird.

<?xml version="1.0" encoding="iso-8859-1"?>  
  <orders>  
    <order>  
      <customer id="12345" />  
      <customername>  
        <firstn>John</firstn>  
        <lastn>Doe</lastn>  
      </customername>  
      <transaction id="12345" />  
      <shipaddress>  
        <address1>1234 Tenth Avenue</address1>  
        <city>Bellevue</city>  
        <state>Washington</state>  
        <zip>98001</zip>  
      </shipaddress>  
      <summary>  
        <item dept="tools">screwdriver</item>  
        <item dept="tools">hammer</item>  
        <item dept="plumbing">fixture</item>  
      </summary>  
    </order>  
 </orders>  

Hinweise

Sie können die überladene Eval Methode dieser Klasse verwenden, um an das Ergebnis eines XPath-Ausdrucks zu binden, der mit einem Objekt ausgeführt wird, das die IXPathNavigable Schnittstelle implementiert, z. B. eine XmlNode. Sie können die Methode verwenden, um die Ergebnisse eines XPath-Ausdrucks abzurufen, der Select für ein IXPathNavigable Objekt als IEnumerable Liste von Knoten ausgeführt wird. Diese Liste von Knoten kann direkt aufgezählt oder der DataSource Eigenschaft eines Listensteuerelements zugewiesen werden, z. B. ein Repeater oder DataList.

Sie können eine vereinfachte Version der Datenbindungssyntax verwenden, wenn Sie die XPathBinder Methoden deklarativ verwenden. Anstelle von Anrufen XPathBinder.Eval(, xpath) können Sie () verwenden XPath(Container.DataItem``xpath). Ähnlich wie beim Aufrufen XPathBinder.Select(,xpath) können Sie (xpath``Container.DataItem) verwendenXPathSelect, um eine IEnumerable Reihe von Knoten abzurufen. Bei Verwendung dieser vereinfachten Syntax gehen die Eval und Select Methoden von einem Standardkontextobjekt Container.DataItem aus.

Weitere Informationen zur Datenbindung an ASP.NET Serversteuerelemente finden Sie unter Data-Binding Expression Syntax.

Methoden

Equals(Object)

Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist.

(Geerbt von Object)
Eval(Object, String)

Wertet XPath-Datenbindungsausdrücke zur Laufzeit aus.

Eval(Object, String, IXmlNamespaceResolver)

Wertet mithilfe des IXmlNamespaceResolver-Objekts, das zur Auflösung von Namespacepräfixen im XPath-Ausdruck angegeben wird, XPath-Datenbindungsausdrücke zur Laufzeit aus und formatiert das Ergebnis als Text, der im anfordernden Browser angezeigt wird.

Eval(Object, String, String)

Wertet XPath-Datenbindungsausdrücke zur Laufzeit aus und formatiert das Ergebnis als Text, der im anfordernden Browser angezeigt wird.

Eval(Object, String, String, IXmlNamespaceResolver)

Wertet mithilfe des IXmlNamespaceResolver-Objekts, das zur Auflösung von Namespacepräfixen im XPath-Ausdruck angegeben wird, XPath-Datenbindungsausdrücke zur Laufzeit aus und formatiert das Ergebnis als Text, der im anfordernden Browser angezeigt wird.

GetHashCode()

Fungiert als Standardhashfunktion.

(Geerbt von Object)
GetType()

Ruft den Type der aktuellen Instanz ab.

(Geerbt von Object)
MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.

(Geerbt von Object)
Select(Object, String)

Verwendet einen XPath-Datenbindungsausdruck zur Laufzeit, um eine Liste mit Knoten zurückzugeben.

Select(Object, String, IXmlNamespaceResolver)

Verwendet das IXmlNamespaceResolver-Objekt, das zur Auflösung von Namespacepräfixen im XPath-Ausdruck angegeben wird, um mit einem XPath-Datenbindungsausdruck zur Laufzeit eine Liste von Knoten zurückzugeben.

ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)

Gilt für