XPathBinder クラス

定義

RAD (Rapid Application Development) デザイナーで、XPath 式を使用したデータ バインディング式を解析できるようにします。 このクラスは継承できません。

public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
継承
XPathBinder

次のコード例は、テンプレート 化されたRepeaterコントロールでコントロールをXmlDataSource使用して XML データを表示する方法を示しています。 この例には、次の 2 つの部分があります。

  • XML データを表示するWeb Forms ページ。

  • データを含む XML ファイル。

この例の最初の部分は、コントロールを介してアクセスされる XML データを表示するWeb Forms ページを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>

2 番目の例では、上で定義したWeb Forms ページに表示されるデータのソースとして使用される 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 メソッドを使用して、インターフェイスを実装 IXPathNavigable するオブジェクトに対して実行される XPath 式の結果にバインドできます。たとえば XmlNode、. このメソッドをSelect使用して、オブジェクトに対して実行された XPath 式の結果をIXPathNavigableIEnumerableノードの一覧として取得できます。 このノードのリストは、直接列挙することも、リスト コントロールのプロパティに割り当て DataSource ることもできます (例: a RepeaterDataList.

メソッドを宣言的に使用する場合は、簡略化されたバージョンのデータ バインディング構文を XPathBinder 使用できます。 (Container.DataItem, ) を呼び出すXPathBinder.Eval代わりに、(xpath) を使用XPath``xpathできます。 同様に、(,xpath) を呼び出すXPathBinder.Select代わりに、Container.DataItem(xpath) を使用XPathSelectしてノードのセットをIEnumerable取得できます。 この簡略化された構文を使用する場合、 Eval and 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)

適用対象