asp.net中,<%#%>,<%=%>和<%%>各自是什么意思,有什么差别
在asp.net中经常出现包括这样的形式<%%>的html代码,总的来说包括以下这样几种格式:
一. <%%>
这样的格式实际上就是和asp的使用方法一样的,仅仅是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支持的语言。
特别注意:server控件中不能有<%%>语法
(这里用C#代码)
<%
int a = 2;
int b = 3;
int c = a + b;
Response.Write(c);
%>二. <%#%>
假设是这样的格式的话那就是asp.net下特有的,它是控件数据绑定的语法,且必需要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法,在这样的情况下无论是server控件还是client控件都会绑定)
特别注意:仅仅有server控件才干用<%#%>语法(不准确的)
当整个页面调用this.DataBinder()方法时,无论是server控件还是client控件都会绑定
<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.绑定的仅仅能是server控件
2.仅仅能绑定到server控件的某个属性上。
<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中的文件:使用client的控件 <input type="text" value="<%$ConnectionStrings:pubs%>"/>或者:不绑定到server控件的某个属性上 <asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
执行都会出现同样的错误
最后注意一点:
<%#%>仅仅针对的是server控件的数据绑定,因此不能同<%=%>和<%%>混合使用
补充:
针对:<%=%>形式:
第二种情况:
aspx代码: <input type="text" id="a" value=<%=DisplayStr()%> />
<input id="Text1" type="text" runat="server" value=<%=DisplayStr()%> />aspx.cs代码:
public string DisplayStr()//注意这里必需要有返回值,否则将会发生执行时错误
{
return "bbbb";
}假设是这样的情况的话,就出现执行时错误。最后对这样的<%=%>使用方法强调一句:尽量对client控件用这样的形式,毕竟它是asp经常使用语法,不会出现故障。
可是对于asp.net的server控件就可能不能全然适合的。
asp.net中,<%#%>,<%=%>和<%%>各自是什么意思,有什么差别的更多相关文章
- ASP.NET中常用的优化性能的方法
1. 数据库访问性能优化 数据库的连接和关闭 访问数据库资源需要创建连接.打开连接和关闭连接几个操作.这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源.ASP.NET中提供了连接池( ...
- asp.net中ashx生成验证码代码放在Linux(centos)主机上访问时无法显示问题
最近有个项目加入了验证码功能,就从自己博客以前的代码中找到直接使用,直接访问验证码页面报错如下: 源代码:asp.net中使用一般处理程序生成验证码 Application Exception Sys ...
- ASP.NET中Session的sessionState 4种mode模式
1. sessionState的4种mode模式 在ASP.NET中Session的sessionState的4中mode模式:Off.InProc.StateServer及SqlServer. 2. ...
- Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值
Asp.net中存储过程拖拽至dbml文件中,提示无法获得返回值,去属性表中设置这时候会提示你去属性表中更改返回类型. 其实存储过程返回的也是一张表,只不过有时候存储过程有点复杂或者写法不规范的话不能 ...
- ASP.NET中后台数据和前台控件的绑定
关于ASP.NET中后台数据库和前台的数据控件的绑定问题 最近一直在学习个知识点,自己创建了SQL Server数据库表,想在ASP.NET中连接数据库,并把数据库中的数据显示在前台,注意,这里的数据 ...
- asp.net中缓存的使用介绍一
asp.net中缓存的使用介绍一 介绍: 在我解释cache管理机制时,首先让我阐明下一个观念:IE下面的数据管理.每个人都会用不同的方法去解决如何在IE在管理数据.有的会提到用状态管理,有的提到的c ...
- ASP.NET中Ajax的用法
在ASP.NET中应用Ajax的格式如下: 前台代码(用JQuery库) $.ajax({ type: "POST", async: true, url: "../Aja ...
- Asp.Net中使用OpenRowSet操作Excel表,导入Sql Server(实例)
有两种接口可供选择:Microsoft.Jet.OLEDB.4.0(以下简称 Jet 引擎)和Microsoft.ACE.OLEDB.12.0(以下简称 ACE 引擎). Jet 引擎大家都很熟悉,可 ...
- Asp.net中static变量和viewstate的使用方法(谨慎)
在.Net平台下进行CS软件开发时,我们经常遇到以后还要用到某些变量上次修改后的值,为了简单起见,很多人都习惯用static来定义这些变量,我也是.这样非常方便,下一次调用某个函数时该变量仍然保存的是 ...
- asp.net中的<%%> <%#%> <%=%>形式的详细用法 (转载)
博客分类: ASP.NET 一. <%%>这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中是.net平台下支 ...
随机推荐
- 推广一下新Blog www.hrwhisper.me
新博客地址:www.hrwhisper.me 欢迎互访加友链~
- Incapsula免费日本CDN加速和CDNZZ香港CDN节点加速
Incapsula免费日本CDN加速和CDNZZ香港CDN节点加速 免费的CDN对于那些将空间放在美国的博客网站加速效果是最好的,CDN可以解决国内连接美国的网络线路经常抽风和访问速度时好时坏的问题, ...
- 关于laravel框架分页报错的问题
因为laravel框架有自己的分页封装,所以与其他框架相比laravel框架的分页的实现要方便的多 只要分别在php脚本与视图中使用 $data=DB::table('index_pic')-> ...
- 【例题 7-1 UVA - 725】Division
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 枚举分母从0到99999. 得到分子,判断合法 [代码] /* 1.Shoud it use long long ? 2.Have ...
- Android Material风格的应用(二)--RecyclerView
添加RecyclerView Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewAndro ...
- Windows 7 下快速挂载和分离VHD文件的小脚本
1.保存以下代码为VDM.vbs,放在Windows\system32下 Dim ArgsSet Args = WScript.ArgumentsTranArgs = " "For ...
- [Angular2 Router] Redirects and Path Matching - Avoid Common Routing Pitfall
In this tutorial we are going to learn how we can can configure redirects in the angular 2 router co ...
- AndroidActivity跳转动画,让你的APP瞬间绚丽起来
我们都知道绚丽的APP总会给用户耳目一新的感觉,为了抓住用户更大网络公司使出浑身解数让自己的产品更绚丽,而绚丽最简单的效果就是Activity跳转效果,不仅能够让用户看起来舒服,并且实现起来也特别简单 ...
- Gamma correction 伽马校准及 matlab 实现
matlab 内置实现:imadjust Gamma Correction gamma correction formula : .^(gamma) or .^(1/gamma)? 用以调整图像光照强 ...
- 【JS学习】-利用谷歌浏览器调试JS代码(转)
谷歌浏览器是常用来调试JS代码的工具,本文主要介绍如何利用谷歌浏览器来调试JS代码,协助我们进行开发工作. 首先,打开谷歌浏览器,按快捷键F12或者ctrl+shift+j,就可以打开谷歌浏览器的开发 ...