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

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

前言
接下來會簡單介紹一些常見的server control,以及一些額外在開發上需要注意的事項。
這一篇文章先簡單介紹一下Label。
(Label要一篇文章來介紹?有沒搞錯…我本來是想跟TextBox放在一起的,不過TextBox篇幅比較多,所以就先拆開了)

在開始介紹之前,我想先推薦幾個Reference,供大家參考,尤其是不知道server control的屬性、事件、方法或是適用情況與寫法時,可以參考一下:

  1. MSDN文件庫
  2. Visual Studio裡面的物件瀏覽器
  3. MSDN forum


Label的介紹

  1. MSDN官方網站說明MSDN 文件庫 reference
  2. 屬性:
    1. Text:呈現的文字。
  3. HTML tag:<span>
  4. 一般用途:用來顯示文字,也有人會拿來Render HTML,其他也會拿來呈現文字或HTML的還有 Literal與PlaceHolder,他們的差異是:Literal與PlaceHolder不會顯示HTML tag,但要小心Cross-Site Scripting(XSS)。
  5. 注意:在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; 即可。

 



最後,請想學習的客倌,看完這篇文章思考一下,下列的問題該如何回答:

  1. Label對應的HTML tag為何?
  2. Label通常用在哪些地方?
  3. Label與其他呈現HTML的server control差異在哪?
  4. Label與JavaScript搭配時,需要注意什麼?
  5. Label在呈現HTML時,可能會有什麼樣的問題?該怎麼避免?

 


blog 與課程更新內容,請前往新站位置:http://tdd.best/