首页 新闻 会员 周边 捐助

devxpress 的gridcontrol多项选择的问题

0
悬赏园豆:30 [已解决问题] 解决于 2015-02-25 10:52

本人想实现类似于这种界面功能:可以选择其中的几项。

本人做的界面大概这个样子:

想实现:可在右侧的选项框中选中想出库的货物,点击“确定出库”后,能得到出库货物的数量以及出库货物信息。不知道能不能实现?

问题补充:

补充一下,本人菜鸟,只会VB.NET,不懂C#

贾晓俊AA的主页 贾晓俊AA | 初学一级 | 园豆:78
提问于:2015-02-09 14:13
< >
分享
最佳答案
0

我也是只会VB.net的菜鸟啊,已经菜了十多年了,哈哈。

1、既然是菜鸟,让你用DevExpress本身的多选功能,你又不肯,那我也没有办法。

2、你非要用WEB模式的CHECKBOX多选,也给了你方法,你又不懂得用,那有什么办法呢?

3、C#和VB.NET语法基本是一样的,你懂得VB.NET,看懂C#应该要没有问题的,只不过一个是中国式写法(命令式写法),一个是外国式写法(对象式写法)。实在看不懂,你安装一个SharpDeveloper,里面有工具可以帮你把C#翻译成VB.NET,也可以反过来。至于DLL,你可以使用Reflector或是其他工具,也是可以翻译成VB.NET或是C#代码的,多看看,自然就懂了。

4、如果按照DevExpress的多选方式,你可以通过Gridview.GetSelectRows得到用户选择的行的行号。

5、提示只能到这儿了,再说下去不如我帮你做了。

收获园豆:15
爱编程的大叔 | 高人七级 |园豆:30844 | 2015-02-09 16:21

真是不好意思,我做这个软件是公司用的,dev本身的多选看起来不如勾选直观。。。所以想这么实现

我自己也搜了一些例程,但运行时老是出错,所以就像请教一下大家。

贾晓俊AA | 园豆:78 (初学一级) | 2015-02-09 16:28

@贾晓俊AA: 我没有说有问题,我只是说,你要用DEV,又要别扭用CHECKBOX,那你就得承受一些代价。

就如同你要做WEB,然后又想弄成C/S模样的,那也一样会很痛苦。

代价不是稍微改一下就好的。

今天跟客户开会才谈起这事,如果你要求效果,本来软件是10万,现在再加30万。这样客户就知道啥意思了,因为他以为是加300。

可能你也以为是加300。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-02-09 16:47

@爱编程的大叔: 恩,那我就不用这个了,那有没有别的,比较直观的、可以一次选择多项的?不一定要连续选择啊,大神指点一下吧?PS:我就看DEV给的DEMO有一个这个(下图),觉得特别漂亮,才执着于这个的

贾晓俊AA | 园豆:78 (初学一级) | 2015-02-09 16:51

@贾晓俊AA: 他这个是编辑,而不是查看。

就是说你的表格中要有个字段,对应Bug,True/False。

 

我一直都是用的DEV表格,一直都是用Ctrl/Shift进行多选的。

Shift是连续多选。Ctrl就可以实现间断多选。

选择的行有颜色区分。

 

如果你一定要用CHECKBOX,要麻烦许多,也不是不行,你自己慢慢摸索吧。

反正大不了继承一个子类,在里面搞点明堂出来。偶尔出点BUG也是正常的,

要想不出BUG,改造DEV还是得花上个把星期或者个把月才行。

 

如果你还是如此纠结,建议你不如换个组件,看看Component One或是Terik之类的能否满足你的要求。

 

刚刚查了一下,DEV从V13.2开始有这个功能,你升级DEV版本吧。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-02-09 17:07

@爱编程的大叔: 恩,好的,谢谢您,那我暂时先不纠结了。

那就在请教一下,选中行的颜色能不能更明显一些呢?我这个看上去不是很明显啊。。。

贾晓俊AA | 园豆:78 (初学一级) | 2015-02-09 17:21

@贾晓俊AA: 颜色都是可以修改的,你在属性里面找找就有了Appearance这个属性吧。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-02-09 17:23

@爱编程的大叔:好像没有呀,我再自己想想办法。。。想不出来再请教

贾晓俊AA | 园豆:78 (初学一级) | 2015-02-09 17:25

@爱编程的大叔: 

麻烦请教一下,就这样选中了多行,待点击“出库”后,如何更改每一件货物的信息呢?也就是如何获得每行数据的FocusedRowHandle()呢?

贾晓俊AA | 园豆:78 (初学一级) | 2015-02-10 09:50

@贾晓俊AA: GetSelectRows(),返回的是所有选中行的行号。

爱编程的大叔 | 园豆:30844 (高人七级) | 2015-02-10 10:08
其他回答(1)
0

我做过类似的

 

收获园豆:15
xuliyuan173 | 园豆:249 (菜鸟二级) | 2015-02-09 18:04

主要思路是先确定checkbox的列名,在将列的handle取出来,

有了int[] handle  就什么都有了

for (int rowIndex = 0; rowIndex < this.gridView1.RowCount; rowIndex++)
{
object objValue = this.gridView1.GetRowCellValue(rowIndex, "CheckMarkSelection");
if (objValue != null)
{
bool check = false;
bool.TryParse(objValue.ToString(), out check);
if (check)
{
list.Add(rowIndex);
}
}
}

支持(0) 反对(0) xuliyuan173 | 园豆:249 (菜鸟二级) | 2015-02-09 18:09

@xuliyuan173: 这些代码要写的什么事件下呢?

支持(1) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-02-10 08:49

@贾晓俊AA: 你需要在什么事件获取这些行  就在写在这个事件下啊

这个代码就是提取checked行

支持(0) 反对(0) xuliyuan173 | 园豆:249 (菜鸟二级) | 2015-02-10 08:56

@xuliyuan173:。。。那我就不懂了,在操作时,我遇到的情况是:只能勾选一行,再勾选其他行时,原来选中的行就自动取消了呀 

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-02-10 08:58

@贾晓俊AA: 你看看有没有这个属性  optionselection--》multiselect

支持(0) 反对(0) xuliyuan173 | 园豆:249 (菜鸟二级) | 2015-02-10 09:04

@xuliyuan173: 已经设置了,还是不能多个勾选啊

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-02-10 09:48

@贾晓俊AA: 那你有没有绑定字段  这种情况很可能是没有绑定字段

支持(0) 反对(0) xuliyuan173 | 园豆:249 (菜鸟二级) | 2015-02-10 12:38

@xuliyuan173: 哦,怎样绑定字段啊?

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-02-10 12:58

@贾晓俊AA: 构造一个字段,选中为1,没选中为0,点击的时候赋值

支持(0) 反对(0) xuliyuan173 | 园豆:249 (菜鸟二级) | 2015-02-10 17:19

@xuliyuan173: 恩,我试试啊,先不结贴了,尝试完了再结贴可以吧?

支持(0) 反对(0) 贾晓俊AA | 园豆:78 (初学一级) | 2015-02-11 10:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册