XPathBinder Класс
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Предоставляет поддержку конструкторов быстрой разработки приложений (RAD) для анализа выражений привязки данных, использующих выражения XPath. Этот класс не может быть унаследован.
public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
- Наследование
-
XPathBinder
Примеры
В следующем примере кода показано, как использовать XmlDataSource элемент управления с шаблонным Repeater элементом управления для отображения XML-данных. В этом примере есть две части:
Страница веб-форм, отображающая XML-данные.
XML-файл, содержащий данные.
В первой части примера показана страница веб-форм, отображающая xml-данные, к которым обращается XmlDataSource элемент управления. Элемент Repeater управления использует упрощенный Eval(Object, String) синтаксис метода для привязки к элементам данных в XML-документе, который XmlDataSource представляет. Он использует Select(Object, String) метод для получения IEnumerable списка и назначения его в качестве свойства с поздней привязкой DataSource для Repeater элемента управления.
<%@ 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>
Второй пример предоставляет XML-файл 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>
Комментарии
Вы можете использовать перегруженный Eval метод этого класса для привязки к результату выражения XPath, выполняемого против объекта, реализующего IXPathNavigable интерфейс, например XmlNode. Метод можно использовать Select для получения результатов выражения XPath, выполняемого против IXPathNavigable объекта в виде IEnumerable списка узлов. Этот список узлов можно перечислить напрямую или назначить DataSource свойству элемента управления списка, например или RepeaterDataList.
При использовании XPathBinder методов декларативно можно использовать упрощенную версию синтаксиса привязки данных. Вместо вызова XPathBinder.Eval(Container.DataItem, xpath) можно использовать XPath(xpath). Аналогичным образом вместо вызова XPathBinder.Select(,xpath) можно использовать XPathSelect(xpathContainer.DataItem) для получения IEnumerable набора узлов. При использовании этого упрощенного синтаксиса EvalSelect методы предполагают объект контекста по умолчанию Container.DataItem .
Дополнительные сведения о привязке данных к элементам управления серверами ASP.NET см. вData-Binding синтаксисе выражений.
Методы
| Имя | Описание |
|---|---|
| Equals(Object) |
Определяет, равен ли указанный объект текущему объекту. (Унаследовано от Object) |
| Eval(Object, String, IXmlNamespaceResolver) |
Вычисляет выражения привязки данных XPath во время выполнения и форматирует результат в виде текста, отображаемого в браузере запроса, используя IXmlNamespaceResolver объект, указанный для разрешения префиксов пространства имен в выражении XPath. |
| Eval(Object, String, String, IXmlNamespaceResolver) |
Вычисляет выражения привязки данных XPath во время выполнения и форматирует результат в виде текста, отображаемого в браузере запроса, используя IXmlNamespaceResolver объект, указанный для разрешения префиксов пространства имен в выражении XPath. |
| Eval(Object, String, String) |
Вычисляет выражения привязки данных XPath во время выполнения и форматирует результат в виде текста, отображаемого в браузере запроса. |
| Eval(Object, String) |
Вычисляет выражения привязки данных XPath во время выполнения. |
| GetHashCode() |
Служит хэш-функцией по умолчанию. (Унаследовано от Object) |
| GetType() |
Возвращает Type текущего экземпляра. (Унаследовано от Object) |
| MemberwiseClone() |
Создает неглубокую копию текущей Object. (Унаследовано от Object) |
| Select(Object, String, IXmlNamespaceResolver) |
Использует выражение привязки данных XPath во время выполнения для возврата списка узлов, используя IXmlNamespaceResolver объект, указанный для разрешения префиксов пространства имен в выражении XPath. |
| Select(Object, String) |
Использует выражение привязки данных XPath во время выполнения для возврата списка узлов. |
| ToString() |
Возвращает строку, представляющую текущий объект. (Унаследовано от Object) |