2014年3月21日 星期五

在Code Behind和帶內聯代碼的頁面之間選擇(1)

http://rritw.com/a/bianchengyuyan/C__/20131031/438121.html

2.3.2  在Code Behind和帶內聯代碼的頁面之間選擇(1) Web窗體有兩種形式:一種是帶Code Behind文件的.aspx文件(根據帶附加.vb或.cs擴展名的Web窗體命
2.3.2  在Code Behind和帶內聯代碼的頁面之間選擇(1)
Web窗體有兩種形式:一種是帶Code Behind文件的.aspx文件(根據帶附加.vb或.cs擴展名的Web窗體命名的文件),另一種是嵌套了代碼的.aspx文件,常稱为帶內聯代碼(inline code)的Web窗體。雖然在第5章之前你不會看到太多的代碼,但是了解這些Web窗體類型之間的區別還是很重要的。首先,帶內聯代碼的Web窗體看起來要稍微容易理解一些。由於構建Web站點所需的代碼是相同的Web窗體部分,因此可以清楚地看到代碼與文件是如何關聯的。然而,隨着頁面變得越來越大,你也向頁面中添加了更多的功能,那時把代碼放在單獨的文件中通常會更加方便。那样,就把代碼完全從標記中分離了出來,你就可以集中精力解决手頭的任務。
在下面的"試一試"練習中將添加兩個文件,它們演示了Code Behind和內聯代碼的區別。
試一試       向站點中添加帶代碼的Web窗體
在本練習中添加的文件不是最終的應用程序所需要的文件。为了避免把項目弄混亂,應把它們放在一個單獨的Demos文件夾中。
(1) 在Solution Explorer中,右擊Web站點並選擇Add | New Folder命令。將文件夾命名为Demos並按下Enter鍵。
(2) 右擊Demos文件夾並選擇Add | Add New Item命令。在出現的對話框的左方選擇喜歡的編程語言,單擊Web窗體模板並命名文件为CodeBehind.aspx。確保選中了Place Code in Separate File复選框。最後,單擊Add按鈕。這個頁面應當已在Markup視圖中打開了,因此可以看到頁面的HTML。
(3) 在文檔窗口下方,單擊Design按鈕將頁面從Markup視圖切換到Design視圖。可以看到這個頁面的背景是白色的,上方有一個小的虛線矩形。這個虛線矩形是在Markup視圖中看到的
元素。
(4) 從Toolbox中,將Standard類別中的一個Label控件拖到頁面的虛線框區域中。記住,如果Toolbox還沒有打開,可以用快捷鍵Ctrl+Alt+X打開。在Design視圖中,屏幕現在應如圖2-11所示。
(5) 雙擊
元素虛線下方某處的空白區域,VS就會從Design視圖切換到文件的Code Behind模式,並添加向瀏覽器中加載頁面時激活的代碼。
  1. VB.NET  
  2. Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load  
  3. End Sub  
  4. C#  
  5. protected void Page_Load(object sender, EventArgs e)  
  6. {  
  7. }  
雖然這種奇怪的代碼這時看起來有點嚇人,但是不要太擔心。如前所述,在大多數情況下,VS會自動添加它。在以後的章節中,將具體看到這样的代碼是如何工作的,不過目前重要的是了解將要放在這些代碼行之間的代碼,在Visual Basic中是以Protected Sub開頭,以End Sub結束,在C#中是以花括號括起來的,當在瀏覽器中請求頁面時就會運行它們。
從現在開始看到的所有代碼示例都包括Visual Basic(VB.NET)和C#版本,因此你總是能選擇一種适合你的編程語言的代碼。
(6) 把光標放在VS創建的代碼的起始行上,並將突出顯示的指示今天日期與時間的代碼添加到label中,這個label最終會出現在瀏覽器中。
 
  1. VB.NET  
  2. Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load  
  3. Label1.Text = "Hello World; the time is now " & DateTime.Now.ToString()  
  4. End Sub  
  5. C#  
  6. protected void Page_Load(object sender, EventArgs e)  
  7. {  
  8. Label1.Text = "Hello World; the time is now " + DateTime.Now.ToString();  
  9. }  
注意,一旦輸入了表示Label1的L,就會看到一個選項列表。這是VS的IntelliSense功能,它是一個不錯的工具,有助於快速編寫代碼。不需要輸入整個單詞Label1,只需要簡單地輸入字母L或者字母La,然後就可以從列表中選擇正確的項,如圖2-12所示。
 


沒有留言: