[ASP.NET]91之ASP.NET由淺入深 不負責講座 Day5 - Server Controls Introduction(1)
前言
接下來會簡單介紹一些常見的server control,以及一些額外在開發上需要注意的事項。
這一篇文章先簡單介紹一下Label。
(Label要一篇文章來介紹?有沒搞錯…我本來是想跟TextBox放在一起的,不過TextBox篇幅比較多,所以就先拆開了)
在開始介紹之前,我想先推薦幾個Reference,供大家參考,尤其是不知道server control的屬性、事件、方法或是適用情況與寫法時,可以參考一下:
- MSDN文件庫
- Visual Studio裡面的物件瀏覽器
- MSDN forum
Label的介紹
- MSDN官方網站說明:MSDN 文件庫 reference
-
屬性:
- Text:呈現的文字。
- HTML tag:<span>
-
一般用途:用來顯示文字,也有人會拿來Render HTML,其他也會拿來呈現文字或HTML的還有 Literal與PlaceHolder,他們的差異是:Literal與PlaceHolder不會顯示HTML tag,但要小心Cross-Site Scripting(XSS)。
- XSS的防範方法可參考:
-
注意:在client端使用JavaScript修改Label內的文字,server端無法得知,postback後Lable的Text值會被還原,因為沒有使用ViewState記值。
-
解決方式:透過hidden暫存修改後的值,再assign回Text。可參考:Label的值,使用js修改後,postback會被還原的問題
- 用hidden暫存client端的值,postback再還原,也就是類似ViewState的前身作法。
- 偷偷使用TextBox,將樣式修改把外框線拿掉,看起來會像Label,但其實是TextBox。CSS設定為 border:solid 0px; 即可。
-
解決方式:透過hidden暫存修改後的值,再assign回Text。可參考:Label的值,使用js修改後,postback會被還原的問題
最後,請想學習的客倌,看完這篇文章思考一下,下列的問題該如何回答:
- Label對應的HTML tag為何?
- Label通常用在哪些地方?
- Label與其他呈現HTML的server control差異在哪?
- Label與JavaScript搭配時,需要注意什麼?
- Label在呈現HTML時,可能會有什麼樣的問題?該怎麼避免?
blog 與課程更新內容,請前往新站位置:http://tdd.best/