Dev控件GridControl实现CheckBox列和ComBox列
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列的更多相关文章
- DEV控件GridControl常用属性设置
1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView.Ad ...
- DEV控件GridControl常用属性设置(转)
1. 如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 2. 如何新增一条记录 (1).gridView. ...
- c# dev控件 gridcontrol 数据跟随鼠标滚轮滚动也可以编辑
在绑定书到gridControl后经常发现: 如果你设置了 this.gridView3.OptionsBehavior.Editable = false; 那数据可以跟随滚轮滚动,但如果你要复制某个 ...
- devexpress表格控件gridcontrol图片列,按钮列,时间列等特殊列的实现
1.项目中经常会在表格中插入按钮列,图片列,表格列一些非文本的特殊列.如何在devexpress表格控件gridcontrol中实现呢?以下列举一个实现添加图片列,按钮列,时间列,按钮列,开关列的示例 ...
- DevExpress控件-GridControl根据条件改变单元格/行颜色(Dev GridControl 单元格着色) z
DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...
- DEV控件中GridView中的复选框与CheckBox实现联动的全选功能
最初的界面图如图1-1(全选框ID: cb_checkall DEV控件名称:gcCon ): 要实现的功能如下图(1-2 1-3 1-4)及代码所示: 图1-2 图1-3 图1-4 O(∩_∩ ...
- DevExpress控件-GridControl根据条件改变单元格(Dev GridControl 单元格着色)
DevExpress控件-GridControl根据条件改变单元格颜色,如下图: 解决办法:可以参考:http://www.cnblogs.com/zeroone/p/4311191.html 第一步 ...
- DevExpress ASP.NET 使用经验谈(9)-Dev控件客户端事件 ClientSideEvents
上一节,已经介绍了ASPxGridView的自定义列和基本事件 ,本节接着将介绍Dev控件的客户端事件模型. 在上节示例基础上,我们增加一行菜单,使用Dev的ASPxMenu来实现,如下图所示. 图一 ...
- DevExpress控件-GridControl根据条件改变单元格/行颜色--转载
DevExpress控件-数据控件GridControl,有时我们需要根据特定条件改变符合条件的行或者单元格颜色达到突出显示目的,现在动起鼠标跟我一起操作吧,对的,要达到这个目的您甚至都不用动键盘. ...
随机推荐
- GDKOI2017游记
去年的GDKOI在寒假(虽然我没参加),但由于一些机♂缘♂巧♂合♂,比赛时间变成了开学之后的第一周,于是直接导致了当我的同学们在认真学习的同时,我在广州无所事事地和同学谈♂笑♂风♂生♂.(太好了,可以 ...
- Exception in thread "main" java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic_test_1219-2: 30010 ms has passed since batch creatio
代码如下 public static void producer1() throws ExecutionException, InterruptedException { Properties pro ...
- Spring初学之使用外部配置文件dataSource
一.在Spring的基础上还要另外导入c3p0包和mysql的驱动包. 二.配置文件, jdbc.propertices:这里只做了一些简单配置 user=root password=123 driv ...
- hdu 5663 Hillan and the girl 莫比乌斯反演
Hillan and the girl Time Limit: 12000/6000 MS (Java/Others) Memory Limit: 524288/524288 K (Java/O ...
- java八大基本类型介绍
//今天说一下java的八大基本类型: // 数字类型:byte(8位).short(16位).int(32位).long(64位) //浮点类型:float(32位).double(64位) //字 ...
- python基础1 - 多文件项目和代码规范
1. 多文件项目演练 开发 项目 就是开发一个 专门解决一个复杂业务功能的软件 通常每 一个项目 就具有一个 独立专属的目录,用于保存 所有和项目相关的文件 – 一个项目通常会包含 很多源文件 在 ...
- Linux系统memcached安装
[memcached安装] Linux系统安装memcached可以自动安装,也可以手动编译安装,这里使用手动编译安装 1.Linux系统安装memcached,首先要先安装libevent库. 下载 ...
- 1001 字符串“水”题(二进制,map,哈希)
1001: 字符串“水”题 时间限制: 1 Sec 内存限制: 128 MB提交: 210 解决: 39[提交][状态][讨论版] 题目描述 给出一个长度为 n 的字符串(1<=n<= ...
- Linux中的固件加载例子
AP6335模块(BCM4339)在上电运行时,是需要刷入固件的,其在普通WIFI模式和AP模式之间切换时,也是需要加载不同的固件的,其位于/system/etc/firmware/下面:fw_bcm ...
- MLPClassifier 隐藏层不包括输入和输出
多层感知机(MLP)原理简介 多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以 ...