[ASP.NET]91之ASP.NET由淺入深 不負責講座 Day6 - Server Controls Introduction(2)
前言
這篇要簡單介紹一下最常用的輸入項:TextBox。
TextBox的介紹:
- MSDN官方網站說明:MSDN 文件庫 reference
- 常用屬性
- Text:文字方塊中的文字,內建ViewState記值,PostBack後會自動記住。
- MaxLength:限制使用者輸入的指定字元數。
- ReadOnly:唯讀,需注意某一種特別弔詭的唯讀情況,請參考黑暗執行緒的文章TextBox.ReadOnly、Attributes["readonly"]及Disabled ,以及另一篇MSDN forum 阿尼的研究
- TextMode:可改變Render出來的HTML tag。
- AutoPostBack:設定為true,會在HTML DOM的onchange事件,加上呼叫__doPostBack()的function,當一旦觸發onchange則postback,將form的資料submit回自己這一頁處理。
- 常用server端事件
OnTextChanged,當TextBox的值與上一次的值有所改變時,即會觸發此事件。 - HTML tag,根據TextMode而有所不同
- SingleLine: <input type='text' />
- MultiLine: <textarea />
- Password: <input type='password' />
- 一般用途
最常用的輸入項- 搭配Validators進行Client端與Server端的驗證
- 外觀
- Textbox的顯示寬度是由它的 Columns 屬性決定 (以字元為單位)。
- TextBox 控制項是多行文字方塊,它所顯示的列數將由 Rows 屬性決定。
- 若要顯示在 TextBox 控制項內換行的文字,應將 Wrap 屬性設定為 true。
- 注意
- TextMode=MultiLine時,MaxLength會失效,因為textarea無法使用MaxLength來限制輸入字元數。解決方式請參考:http://www.dotblogs.com.tw/hatelove/archive/2010/07/06/textarea_maxlength.aspx
- AutoPostBack=false時,並不代表不會觸發server端的OnTextChanged事件,而是等到有任何回到server端處理時,只要值與上一次的值比較後有改變,就會觸發server端的對應事件 (這也是ViewState為何給兩次postback使用,以及event-driven model的基底)
最後,請想學習的客倌,看完這篇文章思考一下,下列的問題該如何回答:
- TextBox對應的HTML tag有哪一些呢?是由哪一個屬性所控制呢?
- TextBox的寬度,列數,可輸入字元數的屬性分別為何?
- ReadOnly的注意事項
- 什麼時候會觸發server端的onTextChanged事件?
- MaxLength在textarea失效,該如何解決?
- 為什麼TextBox的值PostBack後不用處理,值仍然存在?
blog 與課程更新內容,請前往新站位置:http://tdd.best/