asp.net中的<%%>形式的詳細用法執行個體講解

來源:互聯網
上載者:User

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:<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();
}
}
運行顯示出來的效果

三. <%=%>
這種格式經常用到的。
<label id="label1"><%=DisplayStr()%></label><br />
<label id="label2" runat="server"><%=DisplayStr()%></label>
aspx.cs代碼:

public string DisplayStr()//注意這裡必須要有傳回值,否則將會發生執行階段錯誤
{
return "bbbb";
}
運行效果:

四.<%$%>
主要用於引用外部資源
特別注意:1.綁定的只能是伺服器控制項
2.只能綁定到伺服器控制項的某個屬性上。
以下以擷取web.config資源來做執行個體:
<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>

運行都會出現相同的錯誤:
"分析器錯誤資訊:不允許使用類似"<%$ConnectionStrings:pubs%>"類似的文本運算式,請改用……

 
最後強調:
<%#%>只針對的是伺服器控制項的資料繫結,因此不能同<%=%>和<%%>混合使用

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.