程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> .NET實例教程 >> asp.net中形式的用法。

asp.net中形式的用法。

編輯:.NET實例教程
今天第一天開通了博客,心情樂滋滋的,因為可以和園子裡的朋友一起研究技術了。我希望把平時在項目中積累的知識以及自己學習的知識同園子裡的朋友分享分享。為我們園子的壯大付出自己的一點努力。這是我發表的第二篇話題,希望對這<%%>語法不熟悉的朋友提供幫助,對已經熟悉的朋友,希望能提出你們寶貴的意見。
在ASP.Net中經常出現包含這種形式<%%>的Html代碼,我這裡特別收集了,總的來說包含下面這樣幾種格式:
一.  <%%>
這種格式實際上就是和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()方法時,不管是服務器控件還是客戶端控件都會綁定

ASPx.cs代碼如下:


<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>

 


  protected string text;//注意這裡必須申明為public或protected,否則ASPx頁面(子類)無法訪問
        protected void Page_Load(object sender, EventArgs e)
        {
  &nbsp;         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的服務器控件就可能不能完全適合的。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved