[.NET] gridview checkbox header 全選功能

作者: frex (Frex)   2014-08-29 21:35:36
在 DataGridView 的頭多了一個 Checkbox
用來點選全選所有列的 Checkbox 再點一次變成全部取消
寫法是這樣 目前若預設全部都沒選是正常
但若有幾列選過 點選後就會怪怪的 那一列的 Checkbox就不動了
不知道是哪邊有問題 找了半天找不出Bug
有人可以看一下是哪邊有異嗎?
謝謝
'Set Checkbox Header
Dim rect As Rectangle = dgvMyDataGridView.GetCellDisplayRectangle(5, -1, True)
rect.X = rect.Location.X + rect.Width / 4
rect.Y = rect.Location.Y + (rect.Height / 2 - 9)
Dim cbxHeader As New CheckBox
cbxHeader.Name = "checkboxHeader"
cbxHeader.Size = New Size(18, 18)
cbxHeader.Location = rect.Location
If cbxHeader IsNot Nothing Then
AddHandler cbxHeader.CheckedChanged, New EventHandler(AddressOf
ChecboxHeaderChangeEvent)
End If
dgvMyDataGridView.Controls.Add(cbxHeader)
Private Sub ChecboxHeaderChangeEvent(ByVal sender As Object, ByVal e As
EventArgs)
'Get Current Header Status
Dim bolCurStatus As Boolean =
dgvMyDataGridView.Rows(dgvMyDataGridView.CurrentCell.RowIndex).Cells(5).Value
For Each row As DataGridViewRow In dgvMyDataGridView.Rows
row.Cells(5).Value = Not bolCurStatus
Debug.WriteLine(row.Index & " " & row.Cells(5).Value)
' 這邊印出來的值是正常的,所有列會都True或False
' 但介面上看到的,先點過的那個那列再點全選就會有問題
Next
End Sub
怕說明不明確 再補充詳述一下問題
Colume1 colume2 口 -> 點這個checkbox要全選,再點一次全部取消
abc 123 口
def 456 口
kkk 666 口
比如我點了 def 456 這列的 checkbox 後
Colume1 colume2 口
abc 123 口
def 456 v
kkk 666 口
再點選一次header的checkbox 所有列這時會全選沒錯
但我再點選第二次的話 def 456 這列卻沒取消....但印出來的值是 False 沒錯
可是 UI 上面看到的是 check 勾選狀態
作者: GoalBased (Artificail Intelligence)   2014-08-29 22:26:00
你的GRID有再BIND一次嗎?
作者: ian90911 (xopowo)   2014-08-29 23:56:00
標題列check box我都放在header templete
作者: GoalBased (Artificail Intelligence)   2014-08-30 12:39:00
因為我不是寫VS的所以沒看你的CODE我的意思是,你改過datatable的資料後有把這個table跟grid物件再bind嗎不然你改的只有table而不是grid
作者: frex (Frex)   2014-08-31 22:21:00
不是很了解意思@@ 我的確只有要改datagrdiview顯示的狀態結果會有一個Submit的按鈕送出 應該和資料來源面無關Submit 送出後才會改資料 再重新Bind..
作者: GoalBased (Artificail Intelligence)   2014-08-31 23:28:00
我說的沒重新BIND是最常見的問題如果你問題不是在這 我就幫不了忙拉..
作者: frex (Frex)   2014-09-01 10:06:00
了解 謝謝
作者: iamten (小騰)   2014-11-05 10:49:00
asp.net控制項超爛的~~~~

Links booklink

Contact Us: admin [ a t ] ucptt.com