首页 新闻 会员 周边 捐助

bind与eval的区别

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

本人现在还是一个初学者,正在学习中,所以谁有好的意见和建议请给我回复,蝎子

pagg的主页 pagg | 初学一级 | 园豆:120
提问于:2009-06-27 09:55
< >
分享
其他回答(2)
0

Bind是双向绑定,Eval是单向绑定(只读)

斯克迪亚 | 园豆:4124 (老鸟四级) | 2009-06-27 10:24
0

1.eval是只读数据,bind是可更新的.

        2.当对次表达式操作时候,必须用Eval 如<%# Eval("字段名").ToString().Trim() %>

        2.若GridView中绑定列里面 设置 内容格式 DataFormateString ={0:d} ,则 必须把 属性 HtmlCode 设置为false,否则无法 起作用;

        Eval 单向绑定:数据是只读的
        Bind 双向绑定:数据可以更改,并返回服务器端,服务器可以处理更改后的数据,如存入数据库.

LoveO(∩_∩)O | 园豆:55 (初学一级) | 2009-06-27 10:26
0

Bind支持读写是双向的;Eval是只能读数据,是单向的;

还有一点区别就是:如果在表达式进行操作的时候,只能用Eval,用Bind则表达式则没有效果;

下边举一例子:如果给GridView中内容字段中限制显示长度,超过五个字加省略号;

当用Bind 进行绑定表达式时:代码如下:

 <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Bind("ContactTitle").ToString().Length>5 ? Bind("ContactTitle").ToString().Substring(0,5)+"……":Bind("ContactTitle") %>' 
                            ></asp:Label>
                    </ItemTemplate>

 

表达式无效,没有效果。

但改为Eval之后,效果就能正常显示

View Code
 <ItemTemplate>
                        <asp:Label ID="Label2" runat="server" Text='<%# Eval("ContactTitle").ToString().Length>5 ? Eval("ContactTitle").ToString().Substring(0,5)+"……":Eval("ContactTitle") %>' 
                            ></asp:Label>
                    </ItemTemplate>
仙人掌上雨初晴 | 园豆:199 (初学一级) | 2012-05-02 18:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册