Condividi tramite


XPathBinder Classe

Definizione

Offre supporto a strumenti di progettazione per lo sviluppo rapido di applicazioni (RAD) per l'analisi delle espressioni di associazione dati che usano espressioni XPath. La classe non può essere ereditata.

public ref class XPathBinder sealed
public sealed class XPathBinder
type XPathBinder = class
Public NotInheritable Class XPathBinder
Ereditarietà
XPathBinder

Esempio

Nell'esempio di codice seguente viene illustrato come usare un controllo con un XmlDataSource controllo modello Repeater per visualizzare i dati XML. In questo esempio sono presenti due parti:

  • Pagina Web Forms che visualizza i dati XML.

  • File XML contenente i dati.

La prima parte dell'esempio mostra una pagina di Web Forms che visualizza i dati XML accessibili tramite un XmlDataSource controllo. Un Repeater controllo usa la sintassi semplificata Eval(Object, String) del metodo per associare agli elementi di dati all'interno del documento XML rappresentato XmlDataSource . Usa il Select(Object, String) metodo per recuperare un IEnumerable elenco e assegnarlo come proprietà associata DataSource in ritardo per il Repeater controllo.

<%@ 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>

Il secondo esempio fornisce il file XML, Order.xml, usato come origine dei dati visualizzati nella pagina Web Forms definita sopra.

<?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>  

Commenti

È possibile usare il metodo di overload Eval di questa classe per associare al risultato di un'espressione XPath eseguita su un oggetto che implementa l'interfaccia IXPathNavigable , ad esempio un XmlNodeoggetto . È possibile usare il metodo per recuperare i risultati di un'espressione Select XPath eseguita su un IXPathNavigable oggetto come IEnumerable elenco di nodi. Questo elenco di nodi può essere enumerato direttamente o assegnato alla DataSource proprietà di un controllo elenco, ad esempio un Repeater oggetto o DataList.

È possibile usare una versione semplificata della sintassi di data binding quando si usano i XPathBinder metodi dichiarativi. Anziché chiamare XPathBinder.Eval(, xpath) è possibile usare XPath(Container.DataItem``xpath). Analogamente, invece di chiamare XPathBinder.Select(,xpath), è possibile usare XPathSelect(xpath``Container.DataItem) per recuperare un IEnumerable set di nodi. Quando si usa questa sintassi semplificata, i Eval metodi e Select presuppongono un oggetto contesto predefinito Container.DataItem .

Per altre informazioni sul data binding ai controlli server ASP.NET, vedere Sintassi dell'espressione data binding.

Metodi

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
Eval(Object, String)

Valuta le espressioni di associazione dati XPath in fase di esecuzione.

Eval(Object, String, IXmlNamespaceResolver)

Valuta le espressioni di data binding XPath in fase di esecuzione e formatta il risultato come testo da visualizzare nel browser richiedente usando l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi degli spazi dei nomi nell'espressione XPath.

Eval(Object, String, String)

Valuta le espressioni di data binding XPath in fase di esecuzione e formatta il risultato come testo da visualizzare nel browser richiedente.

Eval(Object, String, String, IXmlNamespaceResolver)

Valuta le espressioni di data binding XPath in fase di esecuzione e formatta il risultato come testo da visualizzare nel browser richiedente usando l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi degli spazi dei nomi nell'espressione XPath.

GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetType()

Ottiene l'oggetto Type dell'istanza corrente.

(Ereditato da Object)
MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.

(Ereditato da Object)
Select(Object, String)

Usa un'espressione di data binding XPath in fase di esecuzione per restituire un elenco di nodi.

Select(Object, String, IXmlNamespaceResolver)

Usa un'espressione di data binding XPath in fase di esecuzione per restituire un elenco di nodi, usando l'oggetto IXmlNamespaceResolver specificato per risolvere i prefissi degli spazi dei nomi nell'espressione XPath.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.

(Ereditato da Object)

Si applica a