zoukankan      html  css  js  c++  java
  • 解决DevExpress的RepositoryItemCheckEdit类型的多选框不能多选问题

    近日,在研究功能比较强大的.net第三方控件developer express,竟然发现里面的模板列RepositoryItemCheckEdit默认的状态和单选钮一样,虽然我们有时候也很需要这样的功能,但是有时候我们也要有复选按钮的功能,最头疼的莫过于这个东东的教程,帮助啥的全是英文的.所以在求助网上发现没有满意的答案之后,决心自己狠砸单词,终于黄天不负有心人...我觉得好多人一定也在为这个控件的这个功能而发愁,所以觉得应该写些东西,其实就这个动能也没有什么太神秘,只不过找它的属性方法的 时候比较费时间.

    首先,先定义一个新列,是个绑定的列:(拿绑定列为例)

    1.             gridView1.Columns[10].Caption = "新列1";
    2.             RepositoryItemCheckEdit re3 = new RepositoryItemCheckEdit();
    3.             gridView1.Columns[10].ColumnEdit = re3;
    4.             gridView1.Columns[10].Visible = true;
    5.             re3.QueryCheckStateByValue += new DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventHandler(re3_QueryCheckStateByValue);//定义这个事件是关键,因为就靠它了

    然后就是我们的关键事件里要写的东西了:

    1. void re3_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)
    2.         {
    3.             string val = "";
    4.             if (e.Value != null)
    5.             {
    6.                 val = e.Value.ToString();
    7.             }
    8.             else
    9.             {
    10.                 val = "True";//默认为选中
    11.             }
    12.             switch (val)
    13.             {
    14.                 case"True":
    15.                     e.CheckState = CheckState.Checked;
    16.                     break;
    17.                 case"False":
    18.                     e.CheckState = CheckState.Unchecked;
    19.                     break;
    20.                 case"Yes":
    21.                     gotocase"True";
    22.                 case"No":
    23.                     gotocase"False";
    24.                 case"1":
    25.                     gotocase"True";
    26.                 case"0":
    27.                     gotocase"False";
    28.                 default:
    29.                     e.CheckState = CheckState.Checked;
    30.                     break;
    31.             }
    32.             e.Handled = true;
    33.         }

    对于新加的列,研究了半天没有什么可以实现的方法,不过最后通过改变Sql语句实现了,不如"select '1' as 新列1 from table1 "   这样不就相当于绑定了嘛,所以说还是可以当绑定列来使用的.      

    至此,大功完成!就这么简单...有余力的朋友,还可以再看看QueryValueByCheckState事件,它和我上面提的事件是一对的!呵呵

    另外

    GridControl如果要支持多选,设置Options->OptionSeletion->MultiSelet为true就ok。
  • 相关阅读:
    mysql将视图数据迁移到表中
    一、Vant示例文件
    一、VS安装GitHub插件
    二、.net 特性之二
    .net Core jwt策略参数
    一、
    一、.Net Core 3.1 全局序列化
    前端项目
    python 小脚本升级-- 钉钉群聊天机器人
    java 接口测试,使用excel做数据驱动(二)
  • 原文地址:https://www.cnblogs.com/xiaofengfeng/p/2631290.html
Copyright © 2011-2022 走看看