找回密码
 立即注册

QQ登录

只需一步,快速开始

yin_tb

高级会员

53

主题

200

帖子

1069

积分

高级会员

积分
1069

微信认证勋章

yin_tb
高级会员   /  发表于:2023-11-19 10:44  /   查看:2589  /  回复:3
1金币
本帖最后由 yin_tb 于 2023-11-19 10:51 编辑

如题,如何实现C1TrueDBgrid每一行的ComboBox中有不同的项。意思如下:

一个C1TrueDBgrid,命名为Tgrid1,它有如下几个列:
商品    规格    数量  尺码

Tgrid1.Columns("尺码").ValuesItems.Presentation=PresentationEnum.ComboBox;   //尺码列是列表列。

需求:当在商品中,输入选择销售【衣服】类货物的时候,尺码列表中,添加的是170   175  180 这种衣服才有的尺码。
           当在商品中,输入选择销售【鞋】类货物的时候,尺码列表中,添加的是37   38  39 40 41 这种鞋才有的尺码。

C1TrueDBgrid的列表列,好像只能所有行全一样,因为,列表项是绑的列,而不是可以绑某个单元格
举例:
      ValueItems vi=Tgrid1.Columns("尺码").ValueItems;
       vi.Validate=True;
       vi.Values.Add(New ValueItem("170","170"));
       vi.Values.Add(New ValueItem("175","175"));

微软VS中自带的DataGridView就能实现这种效果。因为,它有个DataGridViewComboBoxCell,可以如下这样写,给行的列表添加列表项:
DirectCast(dgv1.Item("尺码",行号),DataGridViewComboBoxCell).Items.Add("175");
DirectCast(dgv1.Item("尺码",行号),DataGridViewComboBoxCell).Items.Add("180");

C1TrueDBgrid能实现这种功能吗?弄一个ComboBox给Tgrid1.Columns("尺码").Editor,这样变通感觉麻烦,不完美。

最佳答案

查看完整内容

目前没有你说的这种写法,实现需求的话,还是得使用editor,这个也是比较灵活的方式了

3 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-19 10:44:14
来自 2#
目前没有你说的这种写法,实现需求的话,还是得使用editor,这个也是比较灵活的方式了
回复 使用道具 举报
yin_tb
高级会员   /  发表于:2023-11-20 14:57:26
3#
好的,谢谢马老师,我用Editor来实现吧。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2023-11-20 18:05:43
4#
不客气
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部