1、在sql语句中添加空白行,如select c1,c2 null c3 from xxx;

2、将sql语句查询结果与gdc绑定CmmFrm.BestFitGridViewColumnsWidth(gdc_lines, sql,2);

3、将上述空白列绑定为RepositoryItemCheckEdit控件,并添加事件

  RepositoryItemCheckEdit re = new RepositoryItemCheckEdit();

  re.QueryCheckStateByValue += new DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventHandler(Re_QueryCheckStateByValue);//定义这个事件是关键,因为就靠它了  

  gdv_lines.Columns[2].ColumnEdit = re;

4、事件实现:

     void Re_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)
        {
            string val = "";
            if (e.Value != null)
            {
                val = e.Value.ToString();
            }
            else
            {
                val = "";//默认为不选中
            }
           switch (val)
            {
                case"True":
                    e.CheckState = CheckState.Checked;
                    break;
                case"False":
                    e.CheckState = CheckState.Unchecked;
                    break;
                case"Yes":
                    goto case"True";
                case"No":
                    goto case"False";
                case"1":
                    goto case"True";
                case"0":
                    goto case"False";
                default:
                    e.CheckState = CheckState.Unchecked; //默认状态,如果默认选择,则改为Checked
                    break;
            }
            e.Handled = true;
        }

5、整个gdv控件要设为可编辑,但除了chekbox列外,其它列要禁止出现编辑,这要靠gdc控件的ShowingEditor事件实现

private void gdv_lines_ShowingEditor(object sender, CancelEventArgs e)

{

if (gdv_lines.FocusedColumn.AbsoluteIndex != 2)

e.Cancel = true;

}

6、遍历、检索

for (int i = 0; i < gdv_lines.DataRowCount; i++)
            {
                DataRow dr=gdv_lines.GetDataRow(i);
                string ck = dr[2].ToString();
                if (ck == "True")
                {

        ...

      }

7、程序设置选择状态

bool res = true;

if (gdv_lines.GetDataRow(0)[2].ToString() == "True") res = false;

for (int i = 0; i < gdv_lines.DataRowCount; i++)  gdv_lines.GetDataRow(i)[2] = res;

///////////////////////////////////////////////////

另外,添加CombBox的方法,还不完善

//  gdvLevel.BeginUpdate(); //开始视图的编辑,防止触发其他事件

//  gdvLevel.BeginDataUpdate(); //开始数据的编辑

CmmFrm.BestFitGridViewColumnsWidth(gdcLevel, lvels, 1, false, false);

gdcLevel.DataSource = lvels;

gdvLevel.Columns[0].Visible = false;

RepositoryItemComboBox riCombo = new RepositoryItemComboBox();

riCombo.Items.AddRange(new string[] { "夏", "目视", "目视以下", "(含)以下" });

gdcLevel.RepositoryItems.Add(riCombo);

gdvLevel.Columns["其它"].ColumnEdit = riCombo;

     //目前这种添加combbox的方法有缺陷,主要表现在1、不能设置为DorpDownList样式。2、选择后要敲回车,选择才能现在Cell中,否则焦点移走,选择就消失。

     //有两篇文章解决这个问题,有时间梳理下

    //https://yq.aliyun.com/articles/55052
    //https://www.cnblogs.com/lonelyxmas/p/3906496.html

RepositoryItemCheckEdit riCkbox = new RepositoryItemCheckEdit();

riCkbox.ValueChecked = false;

gdcLevel.RepositoryItems.Add(riCkbox);

gdvLevel.Columns["选择"].ColumnEdit = riCkbox;

gdvLevel.EndDataUpdate();//结束数据的编辑

gdvLevel.EndUpdate();   //结束视图的编辑

  

Dev控件GridControl实现CheckBox列和ComBox列的更多相关文章

  1. DEV控件GridControl常用属性设置

    1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...

  2. DEV控件GridControl常用属性设置(转)

      1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView. ...

  3. c# dev控件 gridcontrol 数据跟随鼠标滚轮滚动也可以编辑

    在绑定书到gridControl后经常发现: 如果你设置了 this.gridView3.OptionsBehavior.Editable = false; 那数据可以跟随滚轮滚动,但如果你要复制某个 ...

  4. devexpress表格控件gridcontrol图片列,按钮列,时间列等特殊列的实现

    1.项目中经常会在表格中插入按钮列,图片列,表格列一些非文本的特殊列.如何在devexpress表格控件gridcontrol中实现呢?以下列举一个实现添加图片列,按钮列,时间列,按钮列,开关列的示例 ...

  5. DevExpress控件-GridControl根据条件改变单元格/行颜色(Dev GridControl 单元格着色) z

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

  6. DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

    最初的界面图如图1-1(全选框ID: cb_checkall  DEV控件名称:gcCon ): 要实现的功能如下图(1-2  1-3  1-4)及代码所示: 图1-2 图1-3 图1-4 O(∩_∩ ...

  7. DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)

    DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...

  8. DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents

    上一节,已经介绍了ASPxGridView的自定义列和基本事件 ,本节接着将介绍Dev控件的客户端事件模型. 在上节示例基础上,我们增加一行菜单,使用Dev的ASPxMenu来实现,如下图所示. 图一 ...

  9. DevExpress控件-GridControl根据条件改变单元格/行颜色--转载

    DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...

随机推荐

  1. HDU 2430 Beans (单调队列+公式化简)

    题意:给你n袋豆子,每袋都有w[i]个豆子,接着任选连续任意个袋子的豆子合在一起放入容量为p的多个袋子里(每个袋子必须放满),问剩余的豆子数<=k时,能放满最多的袋子的个数 题解:个数与p都比较 ...

  2. JavaScript 获取输入时的光标位置及场景问题

    前言 在输入编辑的业务场景中,可能会需要在光标当前的位置或附近显示提示选项.比如社交评论中的@user功能,要确保提示的用户列表总是出现在@字符右下方,又或者是在自定义编辑器中 autocomplet ...

  3. es6基础入门变量的解构赋值

    let [a, b, c] = [1, 2, 3]; let [foo, [[bar], baz]] = [1, [[2], 3]]; foo bar baz let [ , , third] = [ ...

  4. Topshelf 和 Katana:统一的 Web 和服务体系结构

    Topshelf 和 Katana:统一的 Web 和服务体系结构 Wes McClure 下载代码示例 使用 IIS 托管 ASP.NET Web 应用程序已成为业界标准十年有余.构建此类应用程序的 ...

  5. 关于调接口和腾讯云cos方面。

    腾讯云的cos js jdk那个文档使用说明不好用. 都没看懂,而且图片上传也没有具体的详细.对于新手来说强制使用这个,弄得自己一头雾水. 工作效率就会下降. 为此我在网上搜了对象存储cos的常见错误 ...

  6. http请求 详解

  7. 如何使用FlashFXP上传网站程序?

    查看ftp信息 [登陆,www.jinlida.cn ,单击主机管理,即可看到ftp主机地址,ftp账号和密码,注意ftp端口号] 1.请先下载并安装FlashFXP_4.1.8.1700-Speci ...

  8. 树莓派相机操作 —— luvcview 的安装、raspistill:摄像头命令

    MMAL (Multimedia Abstraction Layer) RaspiCam Documentation 0. lucview 的安装 安装命令:sudo apt-get install ...

  9. HDU - 5126 stars (CDQ分治)

    题目链接 题目大意:一共有Q(1<=Q<=50000)组操作,操作分为两种: 1.在x,y,z处添加一颗星星 2.询问以(x1,y1,z1)与(x2,y2,z2)为左上和右下顶点的矩形之间 ...

  10. BZOJ4930: 棋盘

    BZOJ4930: 棋盘 https://lydsy.com/JudgeOnline/problem.php?id=4930 分析: 基本上就是游戏那道题加上费用流了,所以没啥好说的. 记得两边都是拆 ...