首页 新闻 会员 周边

repeater绑定数据方式

0
悬赏园豆:5 [已关闭问题]

使用repeater绑定数据有两种方式:

1、在项绑定事件中绑定

2、<% #Eval("字段") %>

这两种绑定方式那种好一些,原因何在?

dufy的主页 dufy | 菜鸟二级 | 园豆:220
提问于:2010-08-04 11:18
< >
分享
其他回答(6)
0

、<% #Eval("字段") %>  这个好些

zhlifu | 园豆:205 (菜鸟二级) | 2010-08-04 11:27
0

其实应该还有一种<%# ((System.Data.DataRowView)Container.DataItem)[“"Title“"] %>,这种的效率最高,推荐使用

Eval虽然简单但是通过反射绑定的,会有性能损失,前台页面绑定不推荐

绑定事件的话绑定我感觉比较烦,需要在后台写事件,但是好处可以对绑定的数据进行处理。

kyo-yo | 园豆:5587 (大侠五级) | 2010-08-04 11:37
0

<%# DataBinder.Eval (Container.DataItem, "Price") %> 比这种 <% #Eval("字段") %> 更要节省资源些,快一些,因为 Eval() 会在内部调用 DataBinder.Eval();  Eval()适合做单向绑定,即只需要把数据绑定到控件上,而DataBinder.Eval() 多用于双向绑定,即要把数据绑定到控件, 也需要把数据回传给数据源。例如:把数据绑到 TextBox.Text 上, 同时也可以获取 TextBox.Text 的值。

HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-04 11:41
0
Astar | 园豆:40805 (高人七级) | 2010-08-04 11:54
0

顶一下 佛本慈悲
“而Eval() 多用于双向绑定,即要把数据绑定到控件, 也需要把数据回传给数据源。 ”

貌似你说的双向绑定指的是 <%# Bind("") %>

这个是双向绑定。而Eval 只是单向绑定

二十二号同学 | 园豆:790 (小虾三级) | 2010-08-04 14:29
对对、谢谢。弄反了。
支持(0) 反对(0) HUHU慈悲 | 园豆:9973 (大侠五级) | 2010-08-04 15:07
0

1、在项绑定事件中绑定 :当需要对字段再进行处理时,这个事件中处理方便,简洁。

2、<% #Eval("字段") %> 只是简单的将字段值绑定到控件上。如果对字段处理,就不方便,因为这是在前台操作的。

至于效率的话我觉得第2种好点。

潇潇息一去不复返 | 园豆:285 (菜鸟二级) | 2010-08-04 15:12
0

<%# ((System.Data.DataRowView)Container.DataItem)[“"Title“"] %>,这种是效率最高的,数据量大的时候可以提高几百倍的速度。

eval绑定不必关心数据来源、数据类型,eval会把这个数据对象转换成一个字符串。在底层绑定做了很多工作,使用了反射性能。使用方便了,但却影响了数据的性能。由于 DataSet 绑定时,DataItem 其实就是一个 DataRowView。因此直接转换成 DataRowView 的话,将会给性能带来很大的提升。

简单的执着_俊 | 园豆:202 (菜鸟二级) | 2013-05-21 23:33
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册