zoukankan      html  css  js  c++  java
  • winform datagridview在添加全选checkbox时提示:不能设置 selected 或 selected 既不是表 Table 的 DataColumn 也不是 DataRelation。

    在项目中,需要多选功能,于是在datagridview添加了一列DataGridViewCheckBoxColumn

    在给datagridview绑定完数据集之后,对全选进行操作的时候,发现总报错,报错内容如下:

    不能设置 selected 

    selected 既不是表 Table 的 DataColumn 也不是 DataRelation。

    在看到第一个错误信息的时候还有点懵,不知道是什么地方错了,导致不能设置,可是第二个错误一出来,马上就清楚明白了。原来是datagridview绑定的数据集没有selected这个字段。

    知道原因,就好解决了,我们只需在绑定数据集之前,往里面添加selected即可。

    加完之后就不报错啦。

    附:加全选的代码:

     1 #region CheckBox的添加
     2             //在左上角做一个全选
     3             ckBox = new CheckBox();
     4             Rectangle rect = dgv_drug_dict.GetCellDisplayRectangle(CSelect.Index, -1, false);
     5             ckBox.Size = new Size(10, dgv_drug_dict.ColumnHeadersHeight - 2);
     6             ckBox.AutoSize = true;
     7             rect.Y += 2;
     8             ckBox.Location = rect.Location;
     9             ckBox.Text = this.CSelect.HeaderText;
    10             CSelect.HeaderText = "";
    11             this.dgv_drug_dict.Controls.Add(ckBox);
    12             ckBox.Checked = false;
    13             ckBox.CheckedChanged += new EventHandler(ckBox_CheckedChanged);
    14             #endregion
     1 /// <summary>
     2         /// 多选框的选择
     3         /// </summary>
     4         /// <param name="sender"></param>
     5         /// <param name="e"></param>
     6         void ckBox_CheckedChanged(object sender, EventArgs e)
     7         {
     8             DataView dv = (DataView)dgv_drug_dict.DataSource;
     9             if (dv == null) return;
    10             this.dgv_drug_dict.EndEdit();
    11             for (int j = 0; j < dv.Count; j++)
    12             {
    13                 if (this.ckBox.Checked)
    14                     dv[j]["selected"] = "1";
    15                 else
    16                     dv[j][CConst.DGV_SELECTD] = DBNull.Value;
    17             }
    18             this.dgv_drug_dict.EndEdit();
    19             dgv_drug_dict.Invalidate();
    20         }
  • 相关阅读:
    Oracle的function存储函数简单实例
    Java保留小数点后两位,解决精度丢失问题
    天津贷款买房提取公积金相关问题
    Springboot配置连接两个数据库
    JDK8:Lambda根据 单个字段、多个字段,分组求和
    原生Ajax方式请求后端导出Excel,在浏览器页面显示下载Excel表(前端请求带header)
    Java实现 微信小程序 + 消息推送
    Centos7安装docker
    将博客搬至CSDN
    读书笔记——数学之美
  • 原文地址:https://www.cnblogs.com/wsn1203/p/10058536.html
Copyright © 2011-2022 走看看