DataBinder.Eval,Eval,Bind的区别

1.DataBinder.Eval和Eval的区别                                   

ASP.NET 2.0改善了模板中的数据绑定操作,把v1.x中的数据绑定语法DataBinder.Eval(Container.DataItem, fieldname)简化为Eval(fieldname)。Eval方法与DataBinder.Eval一样可以接受一个可选的格式化字符串参数。缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器。Eval就是使用反射的方式来进行通用化的绑定,这样我们就完全没有必要关心被绑定的数据源是什么类型,在很多场合下这是非常有益的。从性能方式来考虑,强类型绑定肯定要比反射绑定性能来得好。当然我们在选择是使用强类型绑定还是反射绑定时,主要还是取决你的需要。我个人认为,为了使用解决方案通用化,而不必在关心绑定的数据类型是什么类型,应尽量使用Eval的方式来绑定字段。在实践当中,绑定字段的消费上还不是非常多的,为了灵活和通用这点性能损失我认为是值得的。另外就是如上的特殊字段的情况,我当然也可以使用强类型绑定的方式来解决:

2.Eval和Bind的区别                                                        

Eval:绑定的是只读数据的显示;Bind:可以绑定只读数据也可以绑定更新数据。

3.ASP.NET中DataBinder.Eval用法                            

<%# DataBinder.Eval(Container.DataItem, "ColumnName") %> 正常绑定

<%# DataBinder.Eval(Container.DataItem, "UnitPrice", "{0:F2}") %> 保留两位小数

<%# DataBinder.Eval(Container.DataItem,"Company_Ureg_Date","{0:yyyy-MM-dd}")%> 时间格式化

<%# (bool)DataBinder.Eval(Container.DataItem, "BoolValue") %> 转换类型

4.ASP.NET中Eval的用法                                            

<%# (Eval("if_delete")).ToString == "yes" ?"已删除":"未删除"%> 

<%# GetStr (Eval("if_delete")) %>  GetStr 为后台方法

5.ASP.NET中Bind的用法                                             

<%# Bind("Subject") %>

<%# Bind("AddinTime", "{0:yyyy-mm-dd}") %>

 

你可能感兴趣的:(Binder)