有時 CheckBoxField 會需要繫結到非布林值的欄位,例如繫結的欄位值為 0 或 1;但是預設的 CheckBoxField 若繫結的欄位值為 0 或 1 時 (非布林值) 會發生錯誤。
一般的解法都是使用 TemplateField 來處理,不過本文使用另一種方式,改寫 CheckBoxField 類別,讓 CheckBoxField 有辨法繫結 0 或 1 的欄位值。

作法大致如下:

1.新增一個 Class,並繼承 CheckBoxField ,命名為 TBCheckBoxField。
2.覆寫 OnDataBindField 方法,處理繫結的欄位值。
3.在 *.aspx 檔案中,直接使用 TBCheckBoxField 來取代 CheckBoxField 即可。

TBCheckBoxField 的程式碼如下

ASP.NET 魔法學院


DotBlogs Tags: CheckBoxField GridView ServerControl

Feedback

  • 剛好路過 2008/6/27 上午 11:26 回覆

    # re: 讓 CheckBoxField 繫結非布林值(0 或 1)欄位

    想請問一下應如何增加類別,因直接增加class把程式貼上去會出現『命名空間中的陳述式無效』....

  • jeff377 2008/6/27 下午 12:59 回覆

    # re: 讓 CheckBoxField 繫結非布林值(0 或 1)欄位

    這是伺服器控制項,此段程式碼不是直接在 ASP.NET 網站的程式碼使用。你需要新增一個伺服器控制項的組件(另一新的專案),然後 ASP.NET 的網站引用此組件,就如同使用工具箱的控制項一樣。

  • killua 2009/11/20 上午 11:12 回覆

    # re: 讓 CheckBoxField 繫結非布林值(0 或 1)欄位

    請問一下,如果我要讓checkbox打勾後取出該筆資料庫的資料要怎做?
    是我要在同個資料庫裡設0或1的欄位嗎?

標題 *
名稱 *
Email (將不會被顯示)
Url
回應
登入後使用進階評論
Please add 3 and 8 and type the answer here: