asp.net中的<%%>的几种形式的用法
转自:http://blog.csdn.net/wang379275614/article/details/9625911
在asp.net中经常出现包含这种形式<%%>的html代码,总的来说包含下面这样几种格式:
一.  <%%>为服务端脚本,类似于<script runat="server">,都可以在在asp.net页面的aspx文件中插入代码片段
这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支持的语言。
特别注意:服务器控件中不能有<%%>语法
(这里我用C#代码)
 <%
  <% int a = 2;
        int a = 2; int b = 3;
        int b = 3; int c = a + b;
        int c = a + b; Response.Write(c);
        Response.Write(c); %>
    %>二. <%#%>
如果是这种格式的话那就是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法,在这种情况下不管是服务器控件还是客户端控件都会绑定)
特别注意:只有服务器控件才能用<%#%>语法(不准确的)
2007-1-25修改于:当整个页面调用this.DataBinder()方法时,不管是服务器控件还是客户端控件都会绑定
 <div>
<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 string text;//注意这里必须申明为public或protected,否则aspx页面(子类)无法访问 protected void Page_Load(object sender, EventArgs e)
        protected void Page_Load(object sender, EventArgs e) {
        { if (!Page.IsPostBack)
            if (!Page.IsPostBack) {
            { this.text = "aaaaaaaaaaaaa";
                this.text = "aaaaaaaaaaaaa"; this.TextBox1.DataBind();//或this.DataBind();
                this.TextBox1.DataBind();//或this.DataBind();               }
            } }
        }当this.TextBox1.DataBind()  运行显示出来的效果
this.DataBind() 运行显示出来的效果
三.  <%=%>
这种形式实际上是由<%%>扩展而来的.等价于:Response.Write(<%%>)这种形式(不标准,但能看明白),它其实也可以看成是一种绑定.
aspx代码:
 <label id="label1"><%=DisplayStr()%></label><br />
  <label id="label1"><%=DisplayStr()%></label><br /> <label id="label2" runat="server"><%=DisplayStr()%></label>
  <label id="label2" runat="server"><%=DisplayStr()%></label>aspx.cs代码:
 public string  DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误
 public string  DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误 {
        { return "bbbb";
            return "bbbb"; }
        }运行效果:
四.<%$%>
这种形式主要用于对web.config文件的键值对进行绑定:通常用于连接数据库的字符串
特别注意:1.绑定的只能是服务器控件
             2.只能绑定到服务器控件的某个属性上。
 <asp:TextBox runat="server" ID="cc" Text="<%$ConnectionStrings:pubs%>"></asp:TextBox>
 <asp:TextBox runat="server" ID="cc" Text="<%$ConnectionStrings:pubs%>"></asp:TextBox>web.config文件如下:
 <connectionStrings>
 <connectionStrings> <add name="pubs" connectionString="Server=.;database=pubs;uid=sa;pwd=" providerName="System.Data.SqlClient"/>
    <add name="pubs" connectionString="Server=.;database=pubs;uid=sa;pwd=" providerName="System.Data.SqlClient"/> </connectionStrings>
  </connectionStrings>这样就能正常运行。
如果修改aspx中的文件:使用客户端的控件
 <input type="text" value="<%$ConnectionStrings:pubs%>"/>
 <input type="text" value="<%$ConnectionStrings:pubs%>"/>或者:不绑定到服务器控件的某个属性上
 <asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
<asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>运行都会出现相同的错误
最后注意一点: 
<%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%>和<%%>混合使用
2008-1-25补充:
针对:<%=%>形式:
另外一种情况:
aspx代码:
 <input type="text" id="a"  value=<%=DisplayStr()%> />
          <input type="text" id="a"  value=<%=DisplayStr()%> /> <input id="Text1" type="text"  runat="server" value=<%=DisplayStr()%> />
          <input id="Text1" type="text"  runat="server" value=<%=DisplayStr()%> />aspx.cs代码:
 public string  DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误
 public string  DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误 {
        { return "bbbb";
            return "bbbb"; }
        }如果是这样的情况的话,就出现运行时错误。
最后对这种<%=%>用法强调一句:尽量对客户端控件用这种形式,毕竟它是asp常用语法,不会出现问题。
但是对于asp.net的服务器控件就可能不能完全适合的。
asp.net中的<%%>的几种形式的用法的更多相关文章
- asp.net中常用的几种身份验证方式
		转载:http://www.cnblogs.com/dinglang/archive/2012/06/03/2532664.html 前言 在B/S系统开发中,经常需要使用"身份验证&q ... 
- Javascript中中括号的几种形式
		有以下几种形式 var arr = []; var b = [1,1,1]; var c = b[0]; var obj = {'name':'tom','age':23}; var d = obj[ ... 
- Asp.net中的HttpModule和HttpHandler的简单用法
		在Asp.net中,HttpModule和HttpHandler均可以截取IIS消息进行处理,这使得我们制作人员能够非常方便的进行诸如图片水印添加,图片盗链检查等功能. 下面先就HttpModule的 ... 
- The Data Way Vol.4|开源是创造软件诸多方法中最好的一种形式
		关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ... 
- ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别
		ASP.NET的控件包括WEB服务器控件.WEB用户控件.WEB自定义控件.HTML服务器控件和HTML控件.HTML控件.HTML服务器控件和WEB服务器控件之间的区别如下所示.q HTM ... 
- 请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。
		QueryString 传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储 ... 
- asp.net中过滤器的两种写法
		1.写在一个单独的类库中在web.config中进行配置 <httpModules> <add name="" type="类的全名称,程序集的名称&q ... 
- <iframe> 标签 中 src 的三种形式.  display  , echart
		1.形式一: <iframe scrolling="yes" src="action.php?c=HLogin&a=linkPage&p=fx&qu ... 
- ASP.NET中WebService的两种身份验证方法
		一.通过SOAP Header身份验证 此方法是通过设置SOAP Header信息来验证身份,主要通过以下几步: 1.在服务端实现一个SOAP Header类 public class Credent ... 
随机推荐
- asp:DateDiff 函数
			DateDiff 函数 返回 Variant (Long) 的值,表示两个指定日期间的时间间隔数目. 语法 DateDiff(interval, date1, date2[, firstdayofwe ... 
- Dao模型设计(基于Dao与Hebernate框架)
			以前没有Dao设计模型之前,一般都是这样的流程: ①先设计实体对象 学生对象: package com.itheima.domain; import java.io.Serializable; imp ... 
- Check Mysql Database Size
			SELECT ROUND( SUM(data_length + index_length) / 1024 / 1024 ) TOTAL_MB, ROUND(SUM(data_length) / 102 ... 
- 《Thinking In Java第四版》拾遗
			<Thinking In Java第四版>拾遗 转自我的github(http://katsurakkkk.github.io/2016/05/Thinking-In-Java%E7%AC ... 
- 初用jquery
			---恢复内容开始--- 这两天在顶顶大人的指导下,利用jquery框架做了一个动态切换的小页面.最终效果图: 这么萌萌哒的图片让我觉得一直在测试也没那么累.实现功能如下: 1.打开页面时,自动切换, ... 
- AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
			http://quote.eastmoney.com/center/list.html#28003501_0_2 http://bbs.tianya.cn/post-53726-21098-1.sht ... 
- 水晶报表显示到aspx页面中
			1.在前台添加水晶报表显示控件. <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server&q ... 
- c#面向对象小结
			特点: 1:将复杂的事情简单化. 2:面向对象将以前的过程中的执行者,变成了指挥者. 3:面向对象这种思想是符合现在人们思考习惯的一种思想. 过程和对象在我们的程序中是如何体现的呢?过程其实就是函数: ... 
- php 地址跳转
			header('Location: ' . $sns->getRequestCodeURL()); 
- Nginx+uWSGI+Django+Python在Linux上的部署
			搞了一整天,终于以发现自己访问网络的端口是错误的结束了. 首先要安装Nginx,uWSGI,Django,Python,这些都可以再网上查到. 安装好后可以用 whereis 命令查看是否安装好了各种 ... 
