iT邦幫忙

DAY 5
3

ASP.NET 由淺入深系列 第 5

91之ASP.NET由淺入深 不負責講座 Day5 - Server Controls Introduction(1)

接下來會簡單介紹一些常見的server control,以及一些額外在開發上需要注意的事項。
這一篇文章先簡單介紹一下Label。
在開始介紹之前,我想先推薦幾個Reference,供大家參考,尤其是不知道server control的屬性、事件、方法或是適用情況與寫法時,可以參考一下:
1.MSDN文件庫
2.Visual Studio裡面的物件瀏覽器
3.MSDN forum

Label的介紹:
1.MSDN官方網站說明MSDN 文件庫 reference

2.屬性
Text,呈現的文字

3.HTML tag:<span>

4.一般用途:用來顯示文字,也有人會拿來Render HTML,其他也會拿來呈現文字或HTML的還有 Literal與PlaceHolder,他們的差異是:Literal與PlaceHolder不會顯示HTML tag,但要小心Cross-site scripting(XSS)。可參考:[HOW TO:利用將 HTML 編碼套用至字串的方法,防止會在 Web 應用程式中發生的指令碼攻擊](http://msdn.microsoft.com/zh-tw/library/a2a4yykt(v=VS.80).aspx<br />
),以及擅用指令碼概觀

5.注意
在client端使用JavaScript修改Label內的文字,server端無法得知,用JavaScript修改後,postback後值會被還原,因為沒有使用ViewState記值。
解決方式:透過hidden暫存修改後的值,再assign回Text。可參考:[http://www.dotblogs.com.tw/hatelove/archive/2009/02/12/7125.aspx ](http://www.dotblogs.com.tw/hatelove/archive/2009/02/12/7125.aspx )

最後,請想學習的客倌,看完這篇文章思考一下,下列的問題該如何回答:
1.Label對應的HTML tag為何?
2.Label通常用在哪些地方?
3.Label與其他呈現HTML的server control差異在哪?
4.Label與JavaScript搭配時,需要注意什麼?
5.Label在呈現HTML時,可能會有什麼樣的問題?該怎麼避免?


上一篇
91之ASP.NET由淺入深 不負責講座 Day4 - Server Controls
下一篇
91之ASP.NET由淺入深 不負責講座 Day6 - Server Controls Introduction(2)
系列文
ASP.NET 由淺入深30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 則留言

0
huangsb
iT邦好手 1 級 ‧ 2010-10-03 10:00:07

請問一下,學習 Server Control 時,為什麼要知道它的 HTML tag ? 我發現不同的屬性設定會造成 Server Control 產生不同的 HTML tag。以 Label 為例,它平常產生的是<span>,但是如果設定了AssociatedControlID屬性後,就會產生<label>,了解這些不同會有幫助嗎?

就是91 iT邦研究生 4 級 ‧ 2010-10-03 10:34:16 檢舉

因為最後都是Render成HTML tag,當有些時候Server Control無法完全滿足我們,HTML control又少了很多我們所需要用的屬性或方法時,瞭解最後生成的HTML會是最根本的解決方式。

尤其近年來jQuery等client script framework越來越盛行,加上有很多人家包裝好很炫很華麗的plugin,這些東西都是使用JavaScript針對HTML的DOM來做事的,當我們需要將這些plugin加載到我們的頁面時,我們就得知道對應的HTML長什麼樣子,會不會有互相影響的可能性。

另外,因為server control將東西都包的好好的,相對的也就是要修改它的內部邏輯或呈現,是一件困難的事。幾乎只能透過繼承+覆寫,或是整個自訂控制項重新設計來達到所謂的彈性。而且當畫面出現不是我們所想像的結果時,通常都是需要檢視原始檔來與.aspx上的原始碼來做比較。最後Render出來的HTML都會是一切的基底囉 :)

我要留言

立即登入留言