首页 新闻 会员 周边

asp.net 中的几种绑定的区别

0
悬赏园豆:30 [已解决问题] 解决于 2009-07-10 08:21

         最近在看别人编的网页时,总是遇见一些绑定的问题,看不懂!网上找了一下,找不全,希望好心人帮帮忙!帮我解释一下,下面的几种绑定的区别,以及什么时候用哪些绑定?

    1、     <%# DataBinder.Eval(Container.DataItem,"Subject") %>

     2、   <%# (Eval("con")%>

      3、     <%# Bind("con") %>

    4、    <%= ((GuestBook)Session["gbook"]).Gb_title %>

奔跑男孩的主页 奔跑男孩 | 初学一级 | 园豆:105
提问于:2009-07-09 17:02
< >
分享
最佳答案
0

<%# 表示数据绑定,

Eval是对数据的只读绑定,被绑定的子控件所属的父控件(比如GridView)不能用此子控件接收用户输入的修改。Bind是双向绑定,所谓双向,是数据源---显示界面的双向数

据流动,即读/写。
Eval可以替换为Bind,但会降低性能;反之不能替换。
Container即容器,指父控件;DataItem指父控件所绑定的数据源的当前行,不是字段。

如果只是显示值<%#Eval("字段名")%>就可以了.
如果是要修改值<%#Bind("字段名")%>就可以了.

以下两种的显示是相同的

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

而<%=表示输出变量和Response.Write(xx)等效

玉开 | 大侠五级 |园豆:8822 | 2009-07-09 18:01
其他回答(2)
0

各人喜欢, 都有用,  4是从Session中获取对象

peterzb | 园豆:861 (小虾三级) | 2009-07-09 17:17
0

上面说的很详细

但注意不要用Bind替换Eval,否则你会遇到安全问题,比如将数据Bind到Label,用户无法直接更改Label的值,但是可以通过Firebug之类的插件篡改,这是很危险的。

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-07-09 18:54
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册