<%= 和 <%#差别

本文探讨了ASP.NET Web Controls中的Title控件及其CaptionName属性的使用方法,对比了=和#两种赋值符号在服务器端控件中的执行顺序与应用场景,解释了数据绑定语法与服务器端后台信息传递的区别。
摘要由CSDN通过智能技术生成

WebControls:Title是什么控件?


WebControls:Title   id= "title "   runat= "server "   CaptionName= <%#GetProjectName()   %> > </WebControls:Title>

这里的CaptionName如果我用#的方式可以返回正确的值,如果我用=的方式则报错,你可以试一下
------------------------
在runat= "server "不能使用 <%=   , <%=   是显示服务器端后台的信息,就是前台跟后台通信的,而runat= "server "的控件在后台可以直接使用,不需要 <%=来显示服务器端后台的信息

<%#GetUserName()   %>   这是数据绑定语法,需要调用   DataBind   才能生效。

<%=GetUserName()   %>   这是   Response.Write   的缩写形式,无需调用   DataBind。这段代码不能放在   runat= "server "   的控件中,否则无效。例如, <asp:label   id= "a "   runat= "server "   text= ' <%=GetUserName()   %> '   />   不会调用GetUserName方法。

对控件的属性使用 <%#表达式是被允许的,这主要用于分层数据绑定。而这样的表达式则会被解释为一段赋值代码。注册在控件的DataBinding事件上。

在runat= "server "不能使用 <%=   , <%=   是显示服务器端后台的信息,就是前台跟后台通信的,而runat= "server "的控件在后台可以直接使用,不需要 <%=来显示服务器端后台的信息

=等号就是Response.Write()方法的缩写,这在asp里就是这样了。而#是用于绑定的。

我想,在执行顺序上应该有区别,#号先执行,所以能用于runat=server的控件里面。=号是在服务器端控件解析完后才执行,不能用于runat=server

#比=的执行顺序要早,
#只能用于runat=server的服务器控件,用来参与服务器控件的数据绑定及赋值等,此时页面正在服务器生成过程中;
=只用于客户端与服务端的通讯,此时服务器端控件全部构造完毕,=的对象均是客户端的元素、控件或回显等

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值