asp.net中的<%%>形式的详细用法实例讲解
2014-04-17 11:50
756 查看
asp.net中的代码分离模式我们肯定都不陌生,C#(或者其它语言)写的代码一般不会和设计语言HTML混在一起,但是有的时候也避免不了,这时就会在UI页面里用<%%>来绑定显示、绑定变量数据了,今日看到一文章专门对此进行了分析,我进行了一点修正:
一. <%%>
这种格式实际上就是和asp的用法一样的,只是asp中里面是vbs cript或者javas cript代码,而在asp.net中用的是.net平台下支持的语言。
特别注意:服务器控件中不能包含<%%>的语法,否则出错。
如下,我们可以在.aspx页面里出现如下代码: <% int a = 2; int b = 3; int c = a + b; Response.Write(c); %>
另外需要注意的是<%%>标记内的内联代码是在页面呈现的Render过程中执行的
已经接近页面生命周期的尾部。
二. <%#%>
这种格式是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法)
特别注意:只有服务器控件才能用<%#%>的语法
<div> Server Control:<asp:TextBox ID="TextBox1" runat="server" Text="<%#text%>"></asp:TextBox><br /><!--Server Control--> Client Control:<input type="text" id="textbox2" value="<%#text%>" /><!--Client Control--> </div> aspx.cs代码如下:
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 id="label1"><%=DisplayStr()%></label><br /> <label id="label2" 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" connectionString="Server=.;database=pubs;uid=sa;pwd=" providerName="System.Data.SqlClient"/> </connectionStrings> 这样就能正常运行。 如果修改aspx中的文件:使用客户端的控件
<input type="text" value="<%$ConnectionStrings:pubs%>"/> 或者:不绑定到服务器控件的某个属性上
<asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
运行都会出现相同的错误: "分析器错误信息:不允许使用类似"<%$ConnectionStrings:pubs%>"类似的文本表达式,请改用……
最后强调:
<%#%><%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%><%=%>和<%%><%%>混合使用
from:http://www.bdqn.cn/news/201303/8412.shtml
一. <%%>
这种格式实际上就是和asp的用法一样的,只是asp中里面是vbs cript或者javas cript代码,而在asp.net中用的是.net平台下支持的语言。
特别注意:服务器控件中不能包含<%%>的语法,否则出错。
如下,我们可以在.aspx页面里出现如下代码: <% int a = 2; int b = 3; int c = a + b; Response.Write(c); %>
另外需要注意的是<%%>标记内的内联代码是在页面呈现的Render过程中执行的
已经接近页面生命周期的尾部。
二. <%#%>
这种格式是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法)
特别注意:只有服务器控件才能用<%#%>的语法
<div> Server Control:<asp:TextBox ID="TextBox1" runat="server" Text="<%#text%>"></asp:TextBox><br /><!--Server Control--> Client Control:<input type="text" id="textbox2" value="<%#text%>" /><!--Client Control--> </div> aspx.cs代码如下:
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 id="label1"><%=DisplayStr()%></label><br /> <label id="label2" 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" connectionString="Server=.;database=pubs;uid=sa;pwd=" providerName="System.Data.SqlClient"/> </connectionStrings> 这样就能正常运行。 如果修改aspx中的文件:使用客户端的控件
<input type="text" value="<%$ConnectionStrings:pubs%>"/> 或者:不绑定到服务器控件的某个属性上
<asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
运行都会出现相同的错误: "分析器错误信息:不允许使用类似"<%$ConnectionStrings:pubs%>"类似的文本表达式,请改用……
最后强调:
<%#%><%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%><%=%>和<%%><%%>混合使用
from:http://www.bdqn.cn/news/201303/8412.shtml
相关文章推荐
- ASP.NET前台JS与后台CS函数如何互相调用
- asp.net上传的图片保存到文件夹下,并且生成缩略图
- 64位Win7 IIS7运行 32位Asp.Net出错
- asp.net常用功能搜集 2012集选
- ASP.NET图片验证码
- Windows7下配置添加ASP功能图文详解
- 主攻ASP.NET.4.5.1 MVC5.0之重生:空地搭建一个包含 Ninject框架 项目
- Asp.Net MVC4系列--进阶篇之AJAX
- ASP.NET是如何在IIS下工作的
- asp.net服务器控件生命周期
- 当前标识(NT AUTHORITY\NETWORK SERVICE)没有对“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files”的写访问权限。
- Asp.net Mvc中利用ValidationAttribute实现xss过滤
- asp.net搭建电子商务网站的解决方案的基骨架
- DynamicJasper动态报表在unix上找不到字体问题
- [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
- ASP.NET是如何在IIS下工作的
- [翻译]在ASP.NET Web API中通过OData支持查询和分页
- 树莓派断网的解决办法
- ASP.NET是如何在IIS下工作的
- 处理ASP.NET 请求(IIS)(2)