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 элемента управления списка, например a Repeater или DataList.

При использовании XPathBinder методов декларативно можно использовать упрощенную версию синтаксиса привязки данных. Вместо вызова XPathBinder.Eval(Container.DataItem, xpath) можно использовать XPath(xpath). Аналогичным образом вместо вызова XPathBinder.Select(,xpath) можно использовать XPathSelect(xpath``Container.DataItem) для получения IEnumerable набора узлов. При использовании этого упрощенного синтаксиса Eval Select методы предполагают объект контекста по умолчанию Container.DataItem .

Дополнительные сведения о привязке данных к ASP.NET серверным элементам управления см. в разделе синтаксиса выражений привязки данных.

Методы

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Eval(Object, String)

Вычисляет XPath выражения привязки данных в период выполнения.

Eval(Object, String, IXmlNamespaceResolver)

Вычисляет выражения XPath привязки данных в период выполнения и форматирует результат, как текст, отображаемый запрашивающим браузером, используя объект IXmlNamespaceResolver, заданный для разрешения префиксов пространства имен в выражении XPath.

Eval(Object, String, String)

Вычисляет выражение XPath привязки данных в период выполнения и формирует результат вычислений в виде текста, отображаемого в запрашивающем браузере.

Eval(Object, String, String, IXmlNamespaceResolver)

Вычисляет выражения XPath привязки данных в период выполнения и форматирует результат, как текст, отображаемый запрашивающим браузером, используя объект IXmlNamespaceResolver, заданный для разрешения префиксов пространства имен в выражении XPath.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Select(Object, String)

Использует выражение XPath привязки данных в период выполнения для возврата списка узлов.

Select(Object, String, IXmlNamespaceResolver)

Вычисляет выражения XPath привязки данных в период выполнения для возврата списка узлов, используя объект IXmlNamespaceResolver, заданный для разрешения префиксов пространства имен в выражении XPath.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Применяется к