Wednesday, September 5, 2007

DataBinding using Eval



You can assign any object that implements the IEnumerable, IListSource or IDataSource interface to the DataSource property of a GridView control.

A DataBinding expression is a special type of expression that is not evaluated until runtime. You mark a databinding expression in a page by wrapping the expression in opening <%# and closing %> brackets.

A DataBinding expression isn't evaluated until a control's DataBinding event is raised. When you bind a DataBound control to a DataSource control declaratively, this event is raised automatically. When you bind a DataSource control to a data source programmatically, the DataBinding event is raised when you call the DataBind() method.

Below is the binding syntax:

<%# Eval("Title") %>

<%# Eval("Director") %>

The Eval() method is a protected method of the Page class. Behind the scenes, the Page.Eval() method calls the shared (static) DataBinder.Eval() method. 
If you want to be verbose, instead of using the Eval() method, you could use the following two expressions:

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

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


Technically, the Eval() method uses reflection when evaluating the data item to find a property with a certain name. You do pay a performance penalty when you use reflection.As an alternative, you can improve the performance of your DataBinding expressions by casting the data items to a particular type like this:

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

Thanks & Regards,

Arun Manglick || Tech Lead

No comments:

Post a Comment