二. <%#%>
如果是這種格式的話那就是ASP.Net下特有的,它是控件數據綁定的語法,且必須要調用該控件的DataBind()方法才執行(或者整個頁面Page.DataBind()也就是對所得控件都調用DataBind()方法,在這種情況下不管是服務器控件還是客戶端控件都會綁定)
特別注意:只有服務器控件才能用<%#%>語法(不准確的)
2007-1-25修改於:當整個頁面調用this.DataBinder()方法時,不管是服務器控件還是客戶端控件都會綁定
ASPx.cs代碼如下:
當this.TextBox1.DataBind() 運行顯示出來的效果
this.DataBind() 運行顯示出來的效果
三. <%=%>
這種形式實際上是由<%%>擴展而來的.等價於:Response.Write(<%%>)這種形式(不標准,但能看明白),它其實也可以看成是一種綁定.
ASPx代碼:
ASPx.cs代碼:
運行效果:
四.<%$%>
這種形式主要用於對web.config文件的鍵值對進行綁定:通常用於連接數據庫的字符串
特別注意:1.綁定的只能是服務器控件
2.只能綁定到服務器控件的某個屬性上。
web.config文件如下:
這樣就能正常運行。
如果修改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的服務器控件就可能不能完全適合的。