拉风的猪肉王子

导航

asp.net中的<%%>形式的详细用法实例讲解(转)

asp.net中的<%%>形式的详细用法实例讲解

asp.net中的代码分离模式我们肯定都不陌生,c#(或者其它语言)写的代码一般不会和设计语言html混在一起,但是有的时候也避免不了,这时就会在ui页面里用<%%>来绑定显示、绑定变量数据了,今日看到一文章专门对此进行了分析,我进行了一点修正:

一. <%%>

这种格式实际上就是和asp的用法一样的,只是asp中里面是vbscript或者javascript代码,而在asp.net中用的是.net平台下支持的语言。

特别注意:服务器控件中不能包含<%%>的语法,否则出错。

如下,我们可以在.aspx页面里出现如下代码:

<%

int a = 2;

int b = 3;

int c = a + b;

Response.Write(c);

%>

二. <%#%>

这种格式是asp.net下特有的,它是控件数据绑定的语法,且必须要调用该控件的DataBind()方法才执行(或者整个页面Page.DataBind()也就是对所得控件都调用DataBind()方法)

特别注意:只有服务器控件才能用<%#%>的语法

<div>

Server Control:<aspextBox ID="TextBox1" runat="server" Text="<%#text%>"></aspextBox><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();

}

}

运行显示出来的效果

三. <%=%>

这种格式经常用到的。

<label id="label1"><%=DisplayStr()%></label><br />

<label id="label2" runat="server"><%=DisplayStr()%></label>

aspx.cs代码:

public string DisplayStr()//注意这里必须要有返回值,否则将会发生运行时错误

{

return "bbbb";

}

运行效果:

四.<%$%>

主要用于引用外部资源

特别注意:1.绑定的只能是服务器控件

2.只能绑定到服务器控件的某个属性上。

以下以获取web.config资源来做实例:

<aspextBox runat="server" ID="cc" Text="<%$ConnectionStrings:pubs%>"></aspextBox>

web.config文件如下:

<connectionStrings>

<add name="pubs" c providerName="System.Data.SqlClient"/>

</connectionStrings>

这样就能正常运行。

如果修改aspx中的文件:使用客户端的控件

<input type="text" value="<%$ConnectionStrings:pubs%>"/>

或者:不绑定到服务器控件的某个属性上

<aspextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>

运行都会出现相同的错误:

"分析器错误信息:不允许使用类似"<%$ConnectionStrings:pubs%>"类似的文本表达式,请改用……

 

最后强调:

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

posted on 2010-11-02 22:05  拉风的猪肉王子  阅读(281)  评论(0编辑  收藏  举报