winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。
在项目中,需要多选功能,于是在datagridview添加了一列DataGridViewCheckBoxColumn

在给datagridview绑定完数据集之后,对全选进行操作的时候,发现总报错,报错内容如下:
不能设置 selected
selected 既不是表 Table 的 DataColumn 也不是 DataRelation。
在看到第一个错误信息的时候还有点懵,不知道是什么地方错了,导致不能设置,可是第二个错误一出来,马上就清楚明白了。原来是datagridview绑定的数据集没有selected这个字段。
知道原因,就好解决了,我们只需在绑定数据集之前,往里面添加selected即可。

加完之后就不报错啦。
附:加全选的代码:

#region CheckBox的添加
//在左上角做一个全选
ckBox = new CheckBox();
Rectangle rect = dgv_drug_dict.GetCellDisplayRectangle(CSelect.Index, -, false);
ckBox.Size = new Size(, dgv_drug_dict.ColumnHeadersHeight - );
ckBox.AutoSize = true;
rect.Y += ;
ckBox.Location = rect.Location;
ckBox.Text = this.CSelect.HeaderText;
CSelect.HeaderText = "";
this.dgv_drug_dict.Controls.Add(ckBox);
ckBox.Checked = false;
ckBox.CheckedChanged += new EventHandler(ckBox_CheckedChanged);
#endregion
/// <summary>
/// 多选框的选择
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void ckBox_CheckedChanged(object sender, EventArgs e)
{
DataView dv = (DataView)dgv_drug_dict.DataSource;
if (dv == null) return;
this.dgv_drug_dict.EndEdit();
for (int j = ; j < dv.Count; j++)
{
if (this.ckBox.Checked)
dv[j]["selected"] = "";
else
dv[j][CConst.DGV_SELECTD] = DBNull.Value;
}
this.dgv_drug_dict.EndEdit();
dgv_drug_dict.Invalidate();
}
winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。的更多相关文章
- flexigrid扩展(添加全选,格式化表单)
1.关于flexigrid的属性这里不多说,百度一大把. 这里主要说一个参数process process参数:编写对某一列进行自定义处理的函数 function 方法名(tddiv,pid){}// ...
- ASP.NET给DataGrid,Repeater等添加全选批量删除等功能
很多情况下,在管理或者查看列表的时候我们需要很需要“全选”这个功能,这在ASP.NET中是非常容易实现的,下面我就将演示一点小代码实现这一功能. 实现全选的还是js的一个小函数: [code] ...
- asp:DataGrid之添加asp:CheckBox做全选功能时涉及到绑值问题解决
最大的意图是为asp:CheckBox的value绑定上自己需要的value值,而不是默认的字符串"on" 参考了这篇文章带Value属性的扩展CheckBox控件,意义不大,换了 ...
- 2016/3/30 租房子 ①建立租房子的增、删、改php页面 ②多条件查询 ③全选时 各部分全选中 任意checkbox不选中 全选checkbox不选中
字符串的另一种写法:<<<AAAA; 后两个AA回车要求顶格 不然报错 例子: <!DOCTYPE html> <html lang="en" ...
- GridControl 添加全选列
这里通过List对象绑定GridControl,且不用在GirdControl界面中添加任何列,实现CheckBox列的方法 1.列表中出现CheckBox列 非常简单,在绑定的List实体中,增加一 ...
- Android ListView(Selector 背景图片 全选 Checkbox等按钮)
list_item.xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xm ...
- js全选checkbox框
html: <input type="checkbox" id="checkbox1" value="1" onclick=&quo ...
- Jquery 组 checkbox全选checkbox
<!DOCTYPE html><html lang="zh-cn"><head> <meta charset="utf-8&qu ...
- js实现全选checkbox
js代码 function selectAllCheckBox(parentid) { var PID = document.getElementById(parentid); var cb = PI ...
随机推荐
- 自定义 ThreadPoolExecutor 处理线程运行时异常
自定义 ThreadPoolExecutor 处理线程运行时异常 最近看完了ElasticSearch线程池模块的源码,感触颇深,然后也自不量力地借鉴ES的 EsThreadPoolExecutor ...
- java常见题目总结
编写多线程程序的几种方法:java5以前可以通过继承Thread类或者实现Runnable接口,重写run方法来定义线程行为:java5以后出现了另一种方式,实现Callable接口,该接口的call ...
- P1074 靶形数独题解
题目描述 小城和小华都是热爱数学的好学生,最近,他们不约而同地迷上了数独游戏,好胜的他们想用数独来一比高低.但普通的数独对他们来说都过于简单了,于是他们向 Z 博士请教,Z 博士拿出了他最近发明的“靶 ...
- Makefile模板(C++)
Makefile的C++的一个模板,可用于根据不同源文件,生成多个可执行文件 . CC = g++ DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./ob ...
- js时间戳转日期
//时间戳转日期 2017-04-30 13:20 //type=1--> 2017-04-30 13:20 //type=2-->2018年08月 //type=3-->2018- ...
- 使用git把本地目录传到远程仓库
需求: 要把本地不为空的一个目录和远程现有的一个仓库关联 步骤如下: git init //生成.git目录 git add . //把当前目录里的文件加入到暂存区 git commit -m '上传 ...
- Qt+mpg123+openal播放MP3流
#ifndef PLAYSTREAM_H #define PLAYSTREAM_H #include <QObject> #include "../libMPG123/mpg12 ...
- java程序员技术范围
1 工具 开发工具.源代码管理.构建工具.测试工具(压力.安全等).接口测试工具.反编译工具.日志工具.第三方工具等 2 java jvm.多线程.socket.io(两种方式).集合(两大接口).异 ...
- 【Linux】常见基础命令之文件操作
vi:编辑文件 lilip@ubuntu:~/test/page$ vi test.txt i 切换到输入模式,以输入字符. x 删除当前光标所在处的字符. : ...
- mathJax基础语法-0基础开始,(这是网上抄来的如果有权限和版权问题联系本人处理,仅供学术参考)