首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

asp.net中的<%%>模式的详细用法

2012-11-23 
asp.net中的<%%>形式的详细用法一.? %%这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或

asp.net中的<%%>形式的详细用法

一.? <%%>
这种格式实际上就是和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的服务器控件就可能不能完全适合的。

?

热点排行