在asp.net中经常出现包含这种形式<%%>的html代码,总的来说包含下面这样几种格式:
一. <%%>
这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支持的语言。
特别注意:服务器控件中不能有<%%>语法
(这里用C#代码)
<%
int a = 2;
int b = 3;
int c = a + b;
Response.Write(c);
%>二. <%#%>
如果是这种格式的话那就是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法,在这种情况下不管是服务器控件还是客户端控件都会绑定)
特别注意:只有服务器控件才能用<%#%>语法(不准确的)
当整个页面调用this.DataBinder()方法时,不管是服务器控件还是客户端控件都会绑定
<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();
}
}
当this.TextBox1.DataBind() 运行显示出来的效果(无法插入图片自己测试)
this.DataBind() 运行显示出来的效果(无法插入图片自己测试)
三. <%=%>
这种形式实际上是由<%%>扩展而来的.等价于:Response.Write(<%%>)这种形式(不标准,但能看明白),它其实也可以看成是一种绑定.
aspx代码: <label id="label1"><%=DisplayStr()%></label><br />
<label id="label2" runat="server"><%=DisplayStr()%></label>aspx.cs代码: public string DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误
{
return "bbbb";
}
四.<%$%>
这种形式主要用于对web.config文件的键值对进行绑定:通常用于连接数据库的字符串
特别注意:1.绑定的只能是服务器控件
2.只能绑定到服务器控件的某个属性上。
<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>
运行都会出现相同的错误
最后注意一点:
<%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%>和<%%>混合使用
补充:
针对:<%=%>形式:
另外一种情况:
aspx代码: <input type="text" id="a" value=<%=DisplayStr()%> />
<input id="Text1" type="text" runat="server" value=<%=DisplayStr()%> />aspx.cs代码:
public string DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误
{
return "bbbb";
}如果是这样的情况的话,就出现运行时错误。最后对这种<%=%>用法强调一句:尽量对客户端控件用这种形式,毕竟它是asp常用语法,不会出现问题。
但是对于asp.net的服务器控件就可能不能完全适合的。

最新文章

  1. leetcode 137[转]
  2. maven-各配置文件详解
  3. 06@LabVIEW发布功能总结
  4. 诚信的cpm广告联盟该怎么选择
  5. Windows 版本的iTunes 修改iPhone的备份路径
  6. Java日志规范
  7. vs签入签出--TFS进行源代码管理
  8. linux系统date命令详解
  9. OpenStack 物理资源问题
  10. 解决关于打开plist文件乱码问题,plist转换为xml文件的txt文件!
  11. 101+ Manual and Automation Software Testing Interview Questions and Answers
  12. 引擎设计跟踪(九.14.2b) 骨骼动画基本完成
  13. Regex count lowercase letters
  14. Eclipse中的add jars和add external jars有什么区别(转载)
  15. MYSQL查询一周内的数据(最近7天的)、最近一个月、最近三个月数据
  16. Kafka概述与设计原理
  17. 洛谷 P1091 合唱队形
  18. Factors of Factorial AtCoder - 2286 (N的阶乘的因子个数)(数论)
  19. babelrc
  20. python设置路径值时为什么要输入r

热门文章

  1. ORA-01109:数据库未打开
  2. 支付宝客户端支付配置RSA公钥的问题错误,导致收不到回发通知
  3. session.flush加锁测试.
  4. OC-设计模式KVC+KVO定义及使用
  5. 【LVM】LVM自动扩容脚本
  6. linux常用方法
  7. storm概念学习及流处理与批处理的区别
  8. GL_Oracle Erp月结和年节流程讨论(概念)
  9. poj 1251 统计难题(字典树)
  10. SqlServr进程内存使用增长的解决办法