XPathBinder.Select Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Använder ett XPath-databindningsuttryck vid körning för att returnera en lista över noder.
Överlagringar
| Name | Description |
|---|---|
| Select(Object, String) |
Använder ett XPath-databindningsuttryck vid körning för att returnera en lista över noder. |
| Select(Object, String, IXmlNamespaceResolver) |
Använder ett XPath-databindningsuttryck vid körning för att returnera en lista över noder med hjälp av det IXmlNamespaceResolver angivna objektet för att matcha namnområdesprefix i XPath-uttrycket. |
Kommentarer
Du kan använda den överlagrade Select metoden deklarativt om du vill förenkla hämtningen av en uppsättning noder med hjälp av en XPath-fråga. För att göra det måste du placera taggarna <%# och %>, som också används i standarddatabindningen ASP.NET, runt XPath-frågan.
Select(Object, String)
Använder ett XPath-databindningsuttryck vid körning för att returnera en lista över noder.
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
Parametrar
- container
- Object
Objektreferensen IXPathNavigable som uttrycket utvärderas mot. Detta måste vara en giltig objektidentifierare på sidans angivna språk.
- xPath
- String
XPath-frågan som hämtar en lista över noder.
Returer
En IEnumerable lista över noder.
Undantag
Parametern container eller xpath är null.
Objektet som anges av container är inte en IXPathNavigable.
Den aktuella noden i XPathNodeIterator har ingen associerad XML-nod.
Exempel
Följande kodexempel visar hur du använder en XmlDataSource kontroll med en mallbaserad Repeater kontroll för att visa XML-data. Det här exemplet har två delar:
En webbformulärsida som visar XML-data.
En XML-fil som innehåller data.
Den första delen av exemplet visar en webbformulärsida som visar XML-data som nås via en XmlDataSource kontroll. En Repeater kontroll använder den förenklade Eval(Object, String) metodsyntaxen för att binda till dataobjekt i XML-dokumentet som XmlDataSource representerar. Den använder Select(Object, String) metoden för att hämta en IEnumerable lista och tilldela den som en sen bindningsegenskap DataSource för Repeater kontrollen.
<%@ 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>
Det andra exemplet innehåller XML-filen, Order.xml, som används som källa för de data som visas på sidan Webbformulär som definierats ovan.
<?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>
Kommentarer
Du kan använda Select(Object, String) metoden deklarativt om du vill förenkla hämtningen av en uppsättning noder med hjälp av en XPath-fråga. För att göra det måste du placera taggarna <%# och %>, som också används i standarddatabindningen ASP.NET, runt XPath-frågan.
För någon av ASP.NET serverkontroller, till exempel DataList, DataGrid eller Repeater, bör parametern container vara Container.DataItem.
Gäller för
Select(Object, String, IXmlNamespaceResolver)
Använder ett XPath-databindningsuttryck vid körning för att returnera en lista över noder med hjälp av det IXmlNamespaceResolver angivna objektet för att matcha namnområdesprefix i XPath-uttrycket.
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
Parametrar
- container
- Object
Objektreferensen IXPathNavigable som uttrycket utvärderas mot. Detta måste vara en giltig objektidentifierare på sidans angivna språk.
- xPath
- String
XPath-frågan som hämtar en lista över noder.
- resolver
- IXmlNamespaceResolver
Objektet IXmlNamespaceResolver som används för att matcha namnområdesprefix i XPath-uttrycket.
Returer
En IEnumerable lista över noder.
Kommentarer
Du kan använda Select metoden deklarativt om du vill förenkla hämtningen av en uppsättning noder med hjälp av en XPath-fråga. Om du vill göra det måste du placera taggarna <%# och %>, som också används i standard-ASP.NET databindning, runt XPath-frågan och ett IXmlNamespaceResolver-objekt för att matcha namnområdesreferensen.
För någon av ASP.NET serverkontroller, till exempel DataList, DataGrid eller Repeater, bör parametern container vara Container.DataItem.