(转)asp.net中,<%#%>,<%=%>和<%%>分别是什么意思,有什么区别

(转载:http://blog.csdn.net/lai123wei/article/details/7261701)
在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的服务器控件就可能不能完全适合的。
时间: 2024-11-03 21:14:12

(转)asp.net中,<%#%>,<%=%>和<%%>分别是什么意思,有什么区别的相关文章

【转载】ASP.Net 中DataTextField和DataValueField

asp.net中DDL的DataTextField和DataValueFiled之间的区别和作用. 在asp.net中,绑定DropDownList控件时,会要求你绑定属性的值,因为一个数据源里可能有很多字段,DropDownList控件怎么会知道你想让数据源中的哪一个字段显示出来,哪一个字段作为值进行传递呢? DropDownList控件: DataTextField:将是绑定显示的字段,这个字段的值将会出现在下来框中. DataValueFiled:将是显示的字段所在的行对应的字段的值,作为

asp.net中,&lt;%#%&gt;,&lt;%=%&gt;和&lt;%%&gt;分别是什么意思,有什么区别

在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中,&lt;%#%&gt;,&lt;%=%&gt;和&lt;%%&gt;分别是什么意思,有什么区别

在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中,&lt;%#%&gt;,&lt;%=%&gt;和&lt;%%&gt;分别是什么意思,有什么区别 --转

在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中常用的优化性能的方法

1. 数据库访问性能优化  数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响.系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求. 连接池的大小是有限的,如果在连接池达到最大限度后仍要求创建连接,必然大大影响性能.因此,在建立数据库连接后只有在真正需要操作时才打开连接,使用完

ASP.NET中进行消息处理(MSMQ) 二

在我上一篇文章<ASP.NET中进行消息处理(MSMQ)一>里对MSMQ做了个通俗的介绍,最后以发送普通文本消息和复杂的对象消息为例介绍了消息队列的使用. 本文在此基础上继续介绍MSMQ的相关知识点,最后还是通过一个示例程序来分析MSMQ在实际项目开发中的应用. 建议:如果你对MSMQ不够了解,在你阅读本文前请先阅读第一部分:<ASP.NET中进行消息处理(MSMQ)一>. 一.消息传递的优先级      在MSMQ中消息在队列里传输是分有优先级的,这里我就以实例的形式介绍下关于优

Asp.net中的web.config配置

目录 Asp.net中的web.config配置... 1 一. 配置文件保存位置... 2 二. 配置文件加载顺序... 2 三. 配置文件节点介绍... 3 1. . 3 2. . 5 3. . 5 4. . 6 . 11 四. 针对配置文件的一些编程操作... 11 1. 运行时进行配置文件的修改... 11 2. 配置节点的加密... 12 web.config是asp.net中保存配置信息(比如数据库连接字符串等)的重要文件.它是基于xml的文本文件方式放在Web应用程序的任何目录中,

再论 ASP.NET 中获取客户端IP地址

说到IP获取无非是我们常见的以下几种方式,但是具体获取的值具体区别在哪?网上不乏相关文章,说的也是很详细,但是真正使用起来,还有很多不太对的地方.IP在不同系统中,应用相当广泛,常见的日志记录.广告分区域投放等. 1: HttpContext.Current.Request.ServerVariables["HTTP_VIA"]; 2: HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"

ASP.NET中Gridview一些技巧

ASP.NET中Gridview一些技巧 一.后台覆盖掉Gridview中自动填充的值 我们可以再Gridview中的事件触发的过程中修改其中的值,而这些值将会在具体的运行过程中覆盖掉那些自动属性.这样我们就可以快捷高效的使用VS中的Gridview控件的同时,又增加一定的自主性和可操作性. 例如: ItemInserting事件:数据在插入数据库之前会触发这个事件. 如果主键是Guid类型的,就可以在此事件内处理:生成一个Guid数据,然后赋值给e.Values[“Id”]. protecte