读书人

datagridview分页跳转保持Checkbox选中

发布时间: 2013-11-15 22:28:15 作者: rapoo

datagridview分页跳转保持Checkbox选中状态问题
小弟用数组保存选中的行的ID,在翻页后对比数组中保存的ID,然后将已选中的行的CheckBox设置为选中状态。
但是我在翻页之后,只要选中的行是在该页第一行,这一行的CheckBox就不会打勾,然后点击datagridview的
任意一个单元格这一行才会显示为选中状态。

这是一开始选中的截图
datagridview分页跳转保持Checkbox选中状态有关问题

下面是跳转回该页时的截图。注:这时点击任意单元格,就会跟上图一样了。另外我没有做点击行选中CheckBox。
datagridview分页跳转保持Checkbox选中状态有关问题

有没有大神遇到过这种情况啊?或者有没有更好的记住CheckBox状态的方法? datagridview checkbox 分页
[解决办法]

引用:
Quote: 引用:

Quote: 引用:

我用的是三层,这是dal层的方法:
[code=csharp]public static DataTable GetTable2(int nowPage, int records)
{
string sql =string.Format( @"SELECT TOP " + records + " BianH,XingM FROM RenCaiC WHERE(BianH NOT IN(SELECT TOP " + --nowPage * records + " BianH FROM RenCaiC))");
DataTable dt = DBHelper.GetDataSet(sql);
return dt;
}


Quote: 引用:

Quote: 引用:

还有一种情况:通过全选checkbox,选中当前页全部行,再翻页就不会出现上面的情况。


看下你的代码




看代码也没什么问题,你换成方式选中checkbox看下, ,用CellFormatting事件

也不行啊,把上面的ShowChecked()方法放到CellFormatting事件中,还是一样

那你这个ShowChecked 方法就得改改了



private void dataGridView1_CellFormatting(object sender,
System.Windows.Forms.DataGridViewCellFormattingEventArgs e)
{
if (dgdFBDX.Columns[e.ColumnIndex].Name.Equals("dgdCheckBox"))
{
??string?bianH?=?dgdFBDX.Rows[e.RowIndex].Cells["bianH"].Value.ToString();
????????????????if?(checkDic.ContainsKey(bianH))
????????????????{
???????????????????e.Value?=?true;
????????????????}
}
}


[/code]

读书人网 >C#

热点推荐