您的位置:首页 > 运维架构

关于developer express 的 RepositoryItemCheckEdit 多选

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

 

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

             gridView1.Columns[10].Caption = "新列1";

            RepositoryItemCheckEdit re3 = new RepositoryItemCheckEdit();

            gridView1.Columns[10].ColumnEdit = re3;

            gridView1.Columns[10].Visible = true;

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

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

 void re3_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)

        {

            string val = "";

            if (e.Value != null)

            {

                val = e.Value.ToString();

            }

            else

            {

                val = "True";//默认为选中

            }

            switch (val)

            {

                case "True"<
4000
span>:

                    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.Checked;

                    break;

            }

            e.Handled = true;

        }

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

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

 

另外

GridControl如果要支持多选,设置Options->OptionSeletion->MultiSelet为true就ok。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  express table .net null sql