.NET Framework Class Library
DataBinder..::.Eval Method (Object, String)

Evaluates data-binding expressions at run time.

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

Visual Basic (Declaration)
Public Shared Function Eval ( _
    container As Object, _
    expression As String _
) As Object
Visual Basic (Usage)
Dim container As Object
Dim expression As String
Dim returnValue As Object

returnValue = DataBinder.Eval(container, _
    expression)
C#
public static Object Eval(
    Object container,
    string expression
)
Visual C++
public:
static Object^ Eval(
    Object^ container, 
    String^ expression
)
JScript
public static function Eval(
    container : Object, 
    expression : String
) : Object

Parameters

container
Type: System..::.Object
The object reference against which the expression is evaluated. This must be a valid object identifier in the page's specified language.
expression
Type: System..::.String
The navigation path from the container object to the public property value to be placed in the bound control property. This must be a string of property or field names separated by periods, such as Tables[0].DefaultView.[0].Price in C# or Tables(0).DefaultView.(0).Price in Visual Basic.

Return Value

Type: System..::.Object
An Object instance that results from the evaluation of the data-binding expression.
Exceptions

ExceptionCondition
ArgumentNullException

expression is nullNothingnullptra null reference (Nothing in Visual Basic) or is an empty string after trimming.

Remarks

The value of the expression parameter must evaluate to a public property.

This method is automatically called when you create data bindings in a rapid application development (RAD) designer such as Visual Studio. You can also use it declaratively to simplify casting to a text string. To do so, you use the <%#  %> expression syntax, as used in standard ASP.NET data binding.

This method is particularly useful when binding data to controls that are in a templated list.

NoteNote:

Because this method performs late-bound evaluation, using reflection at run time, it can cause performance to noticeably slow compared to standard ASP.NET data-binding syntax.

For any of the list Web controls, such as GridView, DetailsView, DataList, or Repeater, container should be Container.DataItem. If you are binding against the page, container should be Page.

Examples

The following code example demonstrates how you could use the Eval method declaratively to bind to a Price field. This example uses container syntax that assumes you are using one of the list Web controls.

Visual Basic
<%# DataBinder.Eval(Container.DataItem, "Price") %>

C#
<%# DataBinder.Eval (Container.DataItem, "Price") %>

JScript
<%# DataBinder.Eval (Container.DataItem, "Price") %>

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0, 1.1, 1.0
See Also

Reference

Other Resources

Tags :


Community Content

Bhakthan
Avoid DataBinder.Eval

Use Explicit casting to avoid databinder.eval (which has the Reflection overhead to type the data),

Strongly type the Container.DataItem in VB.NET as follows

<%# (CType(Container.DataItem, System.Data.DataRowView)("fieldname")) %>

In case of date formats,

<%# (CType(Container.DataItem, System.Data.DataRowView)("datecolumn")).ToShortDateString() %>

The above code is tested in ASP.NET 1.1. http://dotnettipoftheday.org/tips/use-explicit-casting-instead-of-databinder.eval.aspx

Please refer the following blog posts to get more detail and also for C# versions of the code,

http://weblogs.asp.net/rajbk/archive/2004/07/20/what-s-the-deal-with-databinder-eval-and-container-dataitem.aspx

http://weblogs.asp.net/jgalloway/archive/2005/09/20/425687.aspx

Tags : tips

Henry Kenuam
Throws HttpException
This method call will throw a System.Web.HttpException if container does not contain a property with the name in expression.
Tags : exception

Page view tracker