一. <%%> 这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或
者javascript代码,而在asp.net中用的是.net平台下支持的语言。特别
注意:服务器控件中不能包含<%%>的语法,否则出错。如下,我们可以
在.aspx页面里出现如下代码:
1 <% 2 int a = 2 ; 3 int b = 3 ; 4 int c = a + b; 5 Response.Write(c); 6 %>二. <%#%>
这种格式是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对
所得控件都调用DataBind()方法)特别。
注意:只有服务器控件才能用<%#%>的语法 aspx.cs代码如下:
1 < div > 2 Server Control: < asp:TextBox runat = " server " Text = " <%#text%> " ></ asp:TextBox >< br /><!-- Server Control --> 3 Client Control: < input type = " text " value = " <%#text%> " /><!-- Client Control --> 4 </ div >
protected string text; // 注意这里必须申明为public或protected,否则aspx页面(子类)无法访问 protected void Page_Load( object sender, EventArgs e) { if ( ! Page.IsPostBack) { this .text = " aaaaaaaaaaaaa " ; this .TextBox1.DataBind(); // 或this.DataBind(); } }
三. <%=%> 这种格式经常用到的。
< label ><%= DisplayStr() %></ label >< br /> < label runat = " server " ><%= DisplayStr() %></ label >
aspx.cs代码:
public string DisplayStr() // 注意这里必须要有返回值,否则将会发生运行时错误 { return " bbbb " ; }
四.<%$%> 主要用于引用外部资源 特别注意:1.绑定的只能是服务器控件 2.只能绑定到服务器控件的某个属性上。 以下以获取web.config资源来做实例:
< asp:TextBox runat = " server " ID = " cc " Text = " <%$ConnectionStrings:pubs%> " ></ asp:TextBox > web.config文件如下: < connectionStrings >< add name = " pubs " c providerName = " System.Data.SqlClient " /></ connectionStrings >这样就能正常运行。
如果修改aspx中的文件:使用客户端的控件
<input type="text" value="<%$ConnectionStrings:pubs%>"/>
或者:不绑定到服务器控件的某个属性上
<asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
运行都会出现相同的错误:
"分析器错误信息:不允许使用类似"<%$ConnectionStrings:pubs%>"类似的文本表达式,请改用……
最后强调:
<%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%>和<%%>混合使用
作者:Glen.He
出处:http://www.cnblogs.com/puresoul/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。