作者frex (Frex)
看板Visual_Basic
标题[.NET] gridview 全选控制
时间Fri Aug 29 21:35:36 2014
在 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 勾选状态
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 112.104.93.163
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1409319339.A.9F9.html
1F:推 GoalBased: 你的GRID有再BIND一次吗? 08/29 22:26
2F:推 ian90911: 标题列check box我都放在header templete 08/29 23:56
3F:推 GoalBased: 因为我不是写VS的所以没看你的CODE 08/30 12:39
4F:→ GoalBased: 我的意思是,你改过datatable的资料後 08/30 12:40
5F:→ GoalBased: 有把这个table跟grid物件再bind吗 08/30 12:40
6F:→ GoalBased: 不然你改的只有table而不是grid 08/30 12:40
7F:→ frex: 不是很了解意思@@ 我的确只有要改datagrdiview显示的状态 08/31 22:21
8F:→ frex: 结果会有一个Submit的按钮送出 应该和资料来源面无关 08/31 22:21
9F:→ frex: Submit 送出後才会改资料 再重新Bind.. 08/31 22:22
10F:→ GoalBased: 我说的没重新BIND是最常见的问题 08/31 23:28
11F:→ GoalBased: 如果你问题不是在这 我就帮不了忙拉.. 08/31 23:29
12F:→ frex: 了解 谢谢 09/01 10:06
13F:推 iamten: asp.net控制项超烂的~~~~ 11/05 10:49