转自: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 b = 3;
        int c = a + b;
        Response.Write(c);
    %>

二. <%#%>
如果是这种格式的话那就是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法,在这种情况下不管是服务器控件还是客户端控件都会绑定)
特别注意:只有服务器控件才能用<%#%>语法(不准确的)

2007-1-25修改于:当整个页面调用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>

运行都会出现相同的错误

最后注意一点: 
<%#%>只针对的是服务器控件的数据绑定,因此不能同<%=%>和<%%>混合使用

2008-1-25补充:
针对:<%=%>形式:
另外一种情况:
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的服务器控件就可能不能完全适合的。

asp.net中的<%%>的几种形式的用法的更多相关文章

  1. asp.net中常用的几种身份验证方式

    转载:http://www.cnblogs.com/dinglang/archive/2012/06/03/2532664.html   前言 在B/S系统开发中,经常需要使用"身份验证&q ...

  2. Javascript中中括号的几种形式

    有以下几种形式 var arr = []; var b = [1,1,1]; var c = b[0]; var obj = {'name':'tom','age':23}; var d = obj[ ...

  3. Asp.net中的HttpModule和HttpHandler的简单用法

    在Asp.net中,HttpModule和HttpHandler均可以截取IIS消息进行处理,这使得我们制作人员能够非常方便的进行诸如图片水印添加,图片盗链检查等功能. 下面先就HttpModule的 ...

  4. The Data Way Vol.4|开源是创造软件诸多方法中最好的一种形式

    关于「The Data Way」 「The Data Way」是由 SphereEx 公司出品的一档播客节目.这里有开源.数据.技术的故事,同时我们关注开发者的工作日常,也讨论开发者的生活日常:我们聚 ...

  5. ASP.NET中共有哪几种类型的控件?其中,HTML控件、HTML服务器控件和WEB服务器控件之间有什么区别

    ASP.NET的控件包括WEB服务器控件.WEB用户控件.WEB自定义控件.HTML服务器控件和HTML控件.HTML控件.HTML服务器控件和WEB服务器控件之间的区别如下所示.q      HTM ...

  6. 请写出在ASP.NET中常用的几种页面间传值的方法,并说出它们的特点。

    QueryString 传递一个或多个安全性要求不高或是结构简单的数值.但是对于传递数组或对象的话,就不能用这个方法了 session(viewstate) 简单,但易丢失 作用于用户个人,过量的存储 ...

  7. asp.net中过滤器的两种写法

    1.写在一个单独的类库中在web.config中进行配置 <httpModules> <add name="" type="类的全名称,程序集的名称&q ...

  8. <iframe> 标签 中 src 的三种形式. display , echart

    1.形式一: <iframe scrolling="yes" src="action.php?c=HLogin&a=linkPage&p=fx&qu ...

  9. ASP.NET中WebService的两种身份验证方法

    一.通过SOAP Header身份验证 此方法是通过设置SOAP Header信息来验证身份,主要通过以下几步: 1.在服务端实现一个SOAP Header类 public class Credent ...

随机推荐

  1. Ztree使用

    基础: <link rel="stylesheet" href="../../../css/zTreeStyle/zTreeStyle.css" type ...

  2. switch case实现两个数的算术运算

    方法一: package com.liaojianya.chapter1; import java.util.Scanner; public class SwitchDemo1 { public st ...

  3. UVA 11584 Paritioning by Palindromes(动态规划 回文)

    题目大意:输入一个由小写字母组成的字符串,你的任务是把它划分成尽量少的回文串.比如racecar本身就是回文串:fastcar只能分成7个单字母的回文串:aaadbccb最少可分成3个回文串:aaa. ...

  4. LA 3902 Network(树上最优化 贪心)

    Network Consider a tree network with n <tex2html_verbatim_mark>nodes where the internal nodes ...

  5. linux 文件类型

    文件类型 1)windows中是以文件的扩展名来区分文件类型的 2)LINUX中文件扩展名和文件类型没有关系. 3)为了容易区分和兼容用户使用windows的习惯,我们也经常扩展名,但是在LINUX系 ...

  6. [Leveldb源码剖析疑问]-block_builder.cc之Add函数

    Add函数是给一个Data block中添加对应的key和value,函数源码如下,其中有一处不理解: L30~L34是更新last_key_的,不理解这里干嘛不直接last_key_ = key.T ...

  7. 23种设计模式全解析 (java版本)

    转自:http://blog.csdn.net/longyulu/article/details/9159589 其中PHP常用的五种设计模式分别为:工厂模式,单例模式,观察者模式,策略模式,命令模式 ...

  8. 初识pngdrive

    初识是第一次认识的意思,类似的词还有初见.初遇.初心.初愿.初恋.初吻……梦里相见如初识,很美好的感觉.同样,今天我们要认识的也是一个比较神奇美妙的东西,至少对于程序员来说. 我曾经尝试过很多文件加密 ...

  9. php练习2——乘法表,变量的使用

    目标:输出九九乘法表 程序: 结果: 目标: 程序variable01.html和variable01.php 结果:

  10. magento install

    1: apt-get insatll   apache2  mysql  php5 2: 把下载的magneto 解压后放到  /var/www/magento 3: 进入   http://127. ...