XPathBinder.Select Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Futtatáskor XPath-adatkötési kifejezést használ a csomópontok listájának visszaadásához.
Túlterhelések
| Name | Description |
|---|---|
| Select(Object, String) |
Futtatáskor XPath-adatkötési kifejezést használ a csomópontok listájának visszaadásához. |
| Select(Object, String, IXmlNamespaceResolver) |
Futtatáskor egy XPath adatkötési kifejezést használ a csomópontok listájának visszaadásához az IXmlNamespaceResolver XPath-kifejezés névtérelőtagjainak feloldásához megadott objektummal. |
Megjegyzések
A túlterhelt Select metódust deklaratív módon is használhatja, ha egy csomópontkészlet lekérését szeretné egyszerűsíteni egy XPath-lekérdezés használatával. Ehhez el kell helyeznie a <%# és %> címkéket, amelyeket a standard ASP.NET adatkötésben is használnak az XPath-lekérdezés köré.
Select(Object, String)
Futtatáskor XPath-adatkötési kifejezést használ a csomópontok listájának visszaadásához.
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
Paraméterek
- container
- Object
Az IXPathNavigable objektumhivatkozás, amely alapján a kifejezés kiértékelése történik. Ennek érvényes objektumazonosítónak kell lennie a lap megadott nyelvén.
- xPath
- String
A csomópontok listáját lekérő XPath-lekérdezés.
Válaszok
Csomópontok IEnumerable listája.
Kivételek
A container vagy xpath paraméter a következő null: .
A megadott container objektum nem egy IXPathNavigable.
Az aktuális csomópont XPathNodeIterator nem rendelkezik társított XML-csomópontokkal.
Példák
Az alábbi példakód bemutatja, hogyan jeleníthet meg XML-adatokat sablonos XmlDataSourceRepeater vezérlővel rendelkező vezérlőkkel. Ez a példa két részből áll:
Xml-adatokat megjelenítő weblap.
Az adatokat tartalmazó XML-fájl.
A példa első része egy olyan weblapot mutat be, amely egy vezérlőelemen keresztül XmlDataSource elért XML-adatokat jelenít meg. A Repeater vezérlőelemek az egyszerűsített Eval(Object, String) metódusszintaxissal kötnek az xml-dokumentumban XmlDataSource szereplő adatelemekhez. A metódussal Select(Object, String) lekér egy IEnumerable listát, és késői kötött DataSource tulajdonságként rendeli hozzá a Repeater vezérlőelemhez.
<%@ 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>
A második példa a fent definiált Űrlapok lapon megjelenített adatok forrásaként használt XML-fájlt Order.xml.
<?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>
Megjegyzések
A metódust deklaratív módon is használhatja Select(Object, String) , ha egy csomópontkészlet lekérését szeretné egyszerűsíteni egy XPath-lekérdezés használatával. Ehhez el kell helyeznie a <%# és %> címkéket, amelyeket a standard ASP.NET adatkötésben is használnak az XPath-lekérdezés köré.
A lista ASP.NET kiszolgálóvezérlők ( például DataList, DataGrid vagy Repeater) esetében a container paraméternek Container.DataItem kell lennie.
A következőre érvényes:
Select(Object, String, IXmlNamespaceResolver)
Futtatáskor egy XPath adatkötési kifejezést használ a csomópontok listájának visszaadásához az IXmlNamespaceResolver XPath-kifejezés névtérelőtagjainak feloldásához megadott objektummal.
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
Paraméterek
- container
- Object
Az IXPathNavigable objektumhivatkozás, amely alapján a kifejezés kiértékelése történik. Ennek érvényes objektumazonosítónak kell lennie a lap megadott nyelvén.
- xPath
- String
A csomópontok listáját lekérő XPath-lekérdezés.
- resolver
- IXmlNamespaceResolver
Az IXmlNamespaceResolver XPath-kifejezés névtér-előtagjainak feloldására használt objektum.
Válaszok
Csomópontok IEnumerable listája.
Megjegyzések
A metódust deklaratív módon is használhatja Select , ha egy csomópontkészlet lekérését szeretné egyszerűsíteni egy XPath-lekérdezés használatával. Ehhez el kell helyeznie a <%# és %> címkéket, amelyeket a standard ASP.NET adatkötésben is használnak, az XPath-lekérdezés és egy IXmlNamespaceResolver objektum köré a névtérhivatkozás feloldásához.
A lista ASP.NET kiszolgálóvezérlők ( például DataList, DataGrid vagy Repeater) esetében a container paraméternek Container.DataItem kell lennie.