Freigeben über


XPathBinder.Select Methode

Definition

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

Überlädt

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.

Hinweise

Sie können die überladene Select Methode deklarativ verwenden, wenn Sie den Abruf einer Gruppe von Knoten mithilfe einer XPath-Abfrage vereinfachen möchten. Dazu müssen Sie die <Tags %# und %> , die auch in der Standarddatenbindung ASP.NET verwendet werden, um die XPath-Abfrage herum platzieren.

Select(Object, String)

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

public:
 static System::Collections::IEnumerable ^ Select(System::Object ^ container, System::String ^ xPath);
public static System.Collections.IEnumerable Select (object container, string xPath);
static member Select : obj * string -> System.Collections.IEnumerable
Public Shared Function Select (container As Object, xPath As String) As IEnumerable

Parameter

container
Object

Der IXPathNavigable-Objektverweis, für den der Ausdruck ausgewertet wird. Dabei muss es sich um einen gültigen Objektbezeichner in der angegebenen Sprache der Seite handeln.

xPath
String

Die XPath-Abfrage, die eine Liste mit Knoten abruft.

Gibt zurück

Eine IEnumerable-Liste von Knoten.

Ausnahmen

Der container-Parameter oder der xpath-Parameter ist null.

Das in container angegebene Objekt ist kein IXPathNavigable.

Der aktuelle Knoten von XPathNodeIterator hat keinen zugeordneten XML-Knoten.

Beispiele

Im folgenden Codebeispiel wird veranschaulicht, wie ein XmlDataSource Steuerelement mit einem vorlagenbasierten Repeater Steuerelement zum Anzeigen von XML-Daten verwendet wird. Dieses Beispiel umfasst zwei Teile:

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

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

Der erste Teil des Beispiels zeigt eine Web Forms Seite, auf der XML-Daten angezeigt werden, auf die über ein XmlDataSource Steuerelement zugegriffen wird. Ein Repeater Steuerelement verwendet die vereinfachte Eval(Object, String) Methodensyntax, um an Datenelemente innerhalb des XML-Dokuments zu binden, das das XmlDataSource darstellt. Sie 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 auf der oben definierten Web Forms Seite angezeigt werden.

<?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 Select(Object, String) Methode deklarativ verwenden, wenn Sie den Abruf einer Gruppe von Knoten mithilfe einer XPath-Abfrage vereinfachen möchten. Dazu müssen Sie die <Tags %# und %> , die auch in der Standarddatenbindung ASP.NET verwendet werden, um die XPath-Abfrage herum platzieren.

Für alle Listen ASP.NET Serversteuerelemente, z DataList. B. , DataGridoder Repeater, sollte der container Parameter sein Container.DataItem.

Gilt für:

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.

public:
 static System::Collections::IEnumerable ^ Select(System::Object ^ container, System::String ^ xPath, System::Xml::IXmlNamespaceResolver ^ resolver);
public static System.Collections.IEnumerable Select (object container, string xPath, System.Xml.IXmlNamespaceResolver resolver);
static member Select : obj * string * System.Xml.IXmlNamespaceResolver -> System.Collections.IEnumerable
Public Shared Function Select (container As Object, xPath As String, resolver As IXmlNamespaceResolver) As IEnumerable

Parameter

container
Object

Der IXPathNavigable-Objektverweis, für den der Ausdruck ausgewertet wird. Dabei muss es sich um einen gültigen Objektbezeichner in der angegebenen Sprache der Seite handeln.

xPath
String

Die XPath-Abfrage, die eine Liste mit Knoten abruft.

resolver
IXmlNamespaceResolver

Das zum Auflösen von Namespacepräfixen im XPath-Ausdruck verwendete IXmlNamespaceResolver-Objekt.

Gibt zurück

Eine IEnumerable-Liste von Knoten.

Hinweise

Sie können die Select Methode deklarativ verwenden, wenn Sie den Abruf einer Gruppe von Knoten mithilfe einer XPath-Abfrage vereinfachen möchten. Dazu müssen Sie die <Tags %# und %> , die auch in der Standarddatenbindung ASP.NET verwendet werden, um die XPath-Abfrage und ein IXmlNamespaceResolver Objekt platzieren, um den Namespaceverweis aufzulösen.

Für alle Listen ASP.NET Serversteuerelemente, z DataList. B. , DataGridoder Repeater, sollte der container Parameter sein Container.DataItem.

Gilt für: