asp.net中,%#%,%=%和%%分别是什么意思,有什么区别
生活随笔
收集整理的這篇文章主要介紹了
asp.net中,%#%,%=%和%%分别是什么意思,有什么区别
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
在asp.net中經(jīng)常出現(xiàn)包含這種形式<%%>的html代碼,總的來(lái)說(shuō)包含下面這樣幾種格式:
一. <%%>
這種格式實(shí)際上就是和asp的用法一樣的,只是asp中里面是vbscript或者javascript代碼,而在asp.net中是.net平臺(tái)下支持的語(yǔ)言。
特別注意:服務(wù)器控件中不能有<%%>語(yǔ)法
(這里用C#代碼)<%int a = 2;int b = 3;int c = a + b;Response.Write(c);%>二. <%#%>
如果是這種格式的話那就是asp.net下特有的,它是控件數(shù)據(jù)綁定的語(yǔ)法,且必須要調(diào)用該控件的DataBind()方法才執(zhí)行(或者整個(gè)頁(yè)面Page.DataBind()也就是對(duì)所得控件都調(diào)用DataBind()方法,在這種情況下不管是服務(wù)器控件還是客戶端控件都會(huì)綁定)
特別注意:只有服務(wù)器控件才能用<%#%>語(yǔ)法(不準(zhǔn)確的)
當(dāng)整個(gè)頁(yè)面調(diào)用this.DataBinder()方法時(shí),不管是服務(wù)器控件還是客戶端控件都會(huì)綁定
<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頁(yè)面(子類)無(wú)法訪問(wèn)protected void Page_Load(object sender, EventArgs e){if (!Page.IsPostBack){this.text = "aaaaaaaaaaaaa";this.TextBox1.DataBind();//或this.DataBind(); }}
當(dāng)this.TextBox1.DataBind() 運(yùn)行顯示出來(lái)的效果(無(wú)法插入圖片自己測(cè)試)
this.DataBind() 運(yùn)行顯示出來(lái)的效果(無(wú)法插入圖片自己測(cè)試)
三. <%=%>
這種形式實(shí)際上是由<%%>擴(kuò)展而來(lái)的.等價(jià)于:Response.Write(<%%>)這種形式(不標(biāo)準(zhǔn),但能看明白),它其實(shí)也可以看成是一種綁定.
aspx代碼: <label id="label1"><%=DisplayStr()%></label><br /><label id="label2" runat="server"><%=DisplayStr()%></label>aspx.cs代碼: public string DisplayStr()//注意這里必須要有返回值,否則將會(huì)發(fā)生運(yùn)行時(shí)錯(cuò)誤{return "bbbb";}
四.<%$%>
這種形式主要用于對(duì)web.config文件的鍵值對(duì)進(jìn)行綁定:通常用于連接數(shù)據(jù)庫(kù)的字符串
特別注意:1.綁定的只能是服務(wù)器控件 2.只能綁定到服務(wù)器控件的某個(gè)屬性上。<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>這樣就能正常運(yùn)行。
如果修改aspx中的文件:使用客戶端的控件 <input type="text" value="<%$ConnectionStrings:pubs%>"/>或者:不綁定到服務(wù)器控件的某個(gè)屬性上 <asp:TextBox runat="server" ID="cc"><%$ConnectionStrings:pubs%></asp:TextBox>
運(yùn)行都會(huì)出現(xiàn)相同的錯(cuò)誤
最后注意一點(diǎn):
<%#%>只針對(duì)的是服務(wù)器控件的數(shù)據(jù)綁定,因此不能同<%=%>和<%%>混合使用
補(bǔ)充:
針對(duì):<%=%>形式:
另外一種情況:
aspx代碼: <input type="text" id="a" value=<%=DisplayStr()%> /><input id="Text1" type="text" runat="server" value=<%=DisplayStr()%> />aspx.cs代碼:public string DisplayStr()//注意這里必須要有返回值,否則將會(huì)發(fā)生運(yùn)行時(shí)錯(cuò)誤{return "bbbb";}如果是這樣的情況的話,就出現(xiàn)運(yùn)行時(shí)錯(cuò)誤。最后對(duì)這種<%=%>用法強(qiáng)調(diào)一句:盡量對(duì)客戶端控件用這種形式,畢竟它是asp常用語(yǔ)法,不會(huì)出現(xiàn)問(wèn)題。
但是對(duì)于asp.net的服務(wù)器控件就可能不能完全適合的
轉(zhuǎn)載于:https://www.cnblogs.com/xrtd/p/4345352.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的asp.net中,%#%,%=%和%%分别是什么意思,有什么区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。