2010年5月31日

[ASPNET] 在 Gridview 中繫結 bool 欄位

一般來說,在 Gridview 中要繫結 bool 的欄位
可以用 Gridview 原生自身提供的 CheckBoxField (如下圖)
bC00但如果要讓 CheckBox 和使用者互動,多半會用 TemplateField 來客製
本篇即是介紹如何將 bool 欄位繫結到 CheckBox 控制項Checked 屬性 

I. 準備事項

首先要確定資料欄位的型別需為 boolean
否則在繫結 Checked 屬性時,會丟出格式不符的例外
bC01範例中是用自己建立的虛擬 Table 來模擬 DataBase 的資料
各位在實作時,可直接使用 DB 來練習

另外在圖中可以看到,坎尼用 0 和 1 來輸入 boolean 資料
CSharp 裡的確可以接受這樣的語法 (印象中 VB 也是?)

II. 實作

CheckBoxField 繫結 boolean 欄位,只需給予 DataField 即可
 
但以 TemplateField 加入的 CheckBox 控制項,則是要自行加入 Binding 語法:
Checked='<%#Eval("boolean 欄位")%>'
bC02 執行畫面
bC03 
可以再加上全選的 CheckBox 在標題列,及儲存變更的按鈕
就完成可和使用者互動的 CheckBox 欄位

III. 小結

坎尼好久沒動筆,文句都有些生疏,請多見諒 ^^

4 則留言:

WIT 提到...

請教阿尼:

>>可以用 Gridview 原生提供的 CheckBoxField

原生的解試是?感謝阿尼 :)

坎尼 提到...

Hi WIT,
就是 Gridview 原本就提供的 BoundField,可以參考文章中的第一張圖片
或是用 AutoGenerateColumns 直接 Binding boolean 的資料來源,Gridview 會自動用 CheckBoxField 來顯示資料

或者是對這個名詞有疑問? 坎尼很自然就用這個名詞,但剛剛查字典卻查不到 (汗)
原生 -> 自身,改成這樣或許會好懂一點 Orz

Unknown 提到...

「原生」應該是從原文的「Native」來的 (native code),可以想像成系統/平台「內建」或者「預設」就有支援的 (最底層的),例如 Google Native Client (http://en.wikipedia.org/wiki/Google_Native_Client)。另外一點,講到「原生」通常都會和 C/C++ 扯上關係 ~

WIT 提到...

了解了,感謝阿尼及Tim :)

Google Spreadsheet 裡用規則運算式

最近因為工作關係,遇到要用 Google Form 及 Google Sheet 所以研究了 Google Sheet 裡的一些 function 怎麼用 首先,分享一下如何在 Google Sheet 裡用規則運算 :D