求DataBinder.Eval 和Bind的详解

来源:百度知道 编辑:UC知道 时间:2024/04/28 03:47:13
DataBinder.Eval 和Bind。出现在asp.net页面中的<%# %>里。我只知道他们都是绑定数据用的
问题1、他们是有什么不同?
问题2、他们是否可以相互替换?
问题3、DataBinder.Eval(Container.DataItem,"") 这个Container和DataItem分别都是什么?

请尽量用平易近人的词语进行详解,谢谢!!无能力回答者请别乱发言。

问题1、他们是有什么不同?
问题2、他们是否可以相互替换?
问题3、DataBinder.Eval(Container.DataItem,"") 这个Container和DataItem分别都是什么?

答1:Eval是对数据的只读绑定,被绑定的子控件所属的父控件(比如GridView)不能用此子控件接收用户输入的修改。Bind是双向绑定,所谓双向,是数据源---显示界面的双向数据流动,即读/写。
答2:Eval可以替换为Bind,但会降低性能;反之不能替换。
答3:Container即容器,指父控件;DataItem指父控件所绑定的数据源的当前行,不是字段。

说实话没什么差别,我的经验就是Bind只能绑定到控件里面的属性,
DataBinder.Eval 好象使用范围比Bind这个要广一些

1.DataBinder.Eval用法
//显示二位小数
<%# DataBinder.Eval(Container.DataItem, "UnitPrice", "${0:F2}") %>

//{0:G}代表显示True或False
<ItemTemplate>
<asp:Image Width="12" Height="12" Border="0" runat="server"
AlternateText="<%# DataBinder.Eval(Container.DataItem,

"Discontinued", "{0:G}") %>"
ImageUrl="<%# DataBinder.Eval(Container.DataItem,

"Discontinued", "~/images/{0: