XPathBinder.Eval Method (Object, String)


Evaluates XPath data-binding expressions at run time.

Namespace:   System.Web.UI
Assembly:  System.Web (in System.Web.dll)

public static object Eval(
	object container,
	string xPath


Type: System.Object

The IXPathNavigable object reference that the expression is evaluated against. This must be a valid object identifier in the page's specified language.

Type: System.String

The XPath query from container to the property value that is placed in the bound control property.

Return Value

Type: System.Object

An Object that results from the evaluation of the data-binding expression.

Exception Condition

The container or xpath parameter is null.


The object specified by container is not an IXPathNavigable object.

You can use the Eval method declaratively if you want to simplify the casting of an XML node to a text string to be displayed on a browser. To do so, you must place the <%# and %> tags, which are also used in standard ASP.NET data binding, around the data-binding expression.

For any of the list ASP.NET server controls, such as DataList, DataGrid, or Repeater, the container parameter should be Container.DataItem. If you are binding against the page, the container parameter should be Page.

The following code example demonstrates how to use an XmlDataSource control with a templated Repeater control to display XML data. This example has two parts:

  • A Web Forms page that displays XML data.

  • An XML file that contains the data.

The first part of the example shows a Web Forms page that displays XML data accessed through an XmlDataSource control. A Repeater control uses the simplified Eval(Object, String) method syntax to bind to data items within the XML document that the XmlDataSource represents. It uses the Select(Object, String) method to retrieve an IEnumerable list and assign it as a late-bound DataSource property for the Repeater control.

<%@ 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>ASP.NET Example</title>
    <form id="form1" runat="server">
        XPath="bookstore/genre[@name='fiction']" />

            <h1><%# XPath ("book/title") %></h1>
            <%# XPath ("book/author/firstname") %>
            <%# XPath ("book/author/lastname") %>
                 DataSource='<%# XPathSelect ("book/chapters") %>'
                     <%# XPath ("chapter/@name") %>

The second example provides the XML file, Bookstore2.xml, that is used as the source of the data displayed in the Web Forms page defined above.

<?xml version="1.0" encoding="iso-8859-1"?>
    <genre name="fiction">
      <book ISBN="10-861003-324">
        <title>The Handmaid's Tale</title>
          <chapter num="1" name="Introduction" /> 
          <chapter num="2" name="Body" /> 
          <chapter num="3" name="Conclusion" />
    <genre name="nonfiction">
      <book genre="nonfiction" ISBN="1-861001-57-5">
        <title>Pride And Prejudice</title>
          <chapter num="1" name="Introduction" /> 
          <chapter num="2" name="Body" />
          <chapter num="3" name="Conclusion" />

.NET Framework
Available since 2.0
Return to top