关于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事件,它和我上面提的事件是一对的!呵呵
另外
首先,先定义一个新列,是个绑定的列:(拿绑定列为例)
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。 |
相关文章推荐
- 关于developer express 的 RepositoryItemCheckEdit 多选设置
- 关于developer express 的 RepositoryItemCheckEdit 多选值生效的问题
- DevExpress XtraGrid RepositoryItemCheckEdit 复选框多选的解决方法
- XtraGrid RepositoryItemCheckEdit 显示状态以及单选多选问题
- 解决DevExpress的RepositoryItemCheckEdit类型的多选框不能多选问题
- WinForm------RepositoryItemCheckEdit属性介绍
- c# DEV 关于gridcontrol 控件,gridview 列为RepositoryItemtextedit获取值的方法
- DevExpress GridControl Gridview RepositoryItemCheckEdit复选框及获取选择行数据
- devExpress GridControl repositoryItemCheckEdit 设置值对应的选中状态
- 关于repositoryitemcombobox中获取当前选择的index问题
- XtraGrid RepositoryItemCheckEdit 初始化运行时候的状态
- 关于获取Gridcontrol中repositoryItemLookUpEdit的使用
- Delphi 关于DBGrid多选删除(shitf多选,ctrl多选)
- Android关于ListView中item与控件抢夺焦点的那些事
- 关于RecyclerView实现瀑布流,上下滑动时item之间互换位置的问题
- 关于Html5中的单选与多选
- 关于CListCtrl控件更新Item的闪烁问题和一次插入大容量数据的显示问题解决办法
- repositoryItemSearchLookUpEdit显示列设置问题
- 关于gridview的item内文字过长换行后显示不完全问题
- 关于TreeView ItemContainerGenerator.ContainerFromIndex 的到的值为null的处理