找回密码
 立即注册

QQ登录

只需一步,快速开始

CherylS

注册会员

1

主题

3

帖子

21

积分

注册会员

积分
21
最新发帖
CherylS
注册会员   /  发表于:2021-1-11 14:31  /   查看:3078  /  回复:5
1金币
我的需求是表格有两列:人员和职位。人员列需要下拉控件,数据源是类型为对象数组([{value,label}])的常量。人员下拉效果为:选中一行后,将selectItem的label赋值给人员列binding,同时将selectItem的value赋值给职位列的binding。wijmo版本:5.20172.359
前端框架: vue2
我的问题是:
1)DataMap能否实现这样的联动更新的功能,我没找到dataMap的selectedChanged的这样的事件可以监听?
2)我现在用的是官网自定义编辑器。 ES6版的CustomGridEditor类实现的
  1. let editor =  new CustomGridEditor(flex, binding, ComboBox, {
  2.       selectedIndexChanged: (sender: any) => {
  3.         let curr = flex.itemsSource.currentItem
  4.         if (sender && sender.selectedItem && curr) {
  5.           let selectedItem = sender.selectedItem
  6.           curr['name'] = selectedItem.label
  7.           curr['operator'] = selectedItem.value
  8.         }
  9.       },
  10.       displayMemberPath: 'label',
  11.       selectedValuePath: 'label',
  12.       itemsSource: LIST
复制代码
但是,这个方法有两个问题:一个是样式上并不能像dataMap一样有个下拉图标显示。另一个是:每次对一个新的单元格进行编辑的时候都会带上上一次编辑完的值,还不能触发selectedIndexChanged 事件。
针对第二个问题,我在cell的beginningEdit事件中重新更新了selectIndex,请问还有别的更好的解决办法吗?
  1. flex.beginningEdit.addHandler((s, e: any) => {
  2.       if (s.columns[e.col].binding === 'name') {
  3.         if (editor) {
  4.           ;(editor.control as ComboBox).selectedIndex = -1
  5.         }
  6.       }
  7.     })
复制代码



5 个回复

倒序浏览
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-11 15:10:55
沙发
您好,您要的效果,在目前最新的2020版本上已经实现了,请参考这篇Demo:
https://www.grapecity.com/wijmo/ ... ustomEditors/purejs

建议您将Wijmo升级到目前的最新版本。新版本会向下兼容原版本。
回复 使用道具 举报
CherylS
注册会员   /  发表于:2021-1-12 09:07:49
板凳
我们已经买了2017版的,2017版本的能实现我要的效果吗
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-12 11:17:49
地板
您好,2017版本无法实现下拉图标UI效果,另外几个问题,可以通过代码定制尝试实现,参考这几篇帖子尝试:
https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1

https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1

https://gcdn.grapecity.com.cn/fo ... &extra=page%3D1
回复 使用道具 举报
CherylS
注册会员   /  发表于:2021-1-13 17:25:08
5#
你好。你发的三个链接对我的帮助不是很大,可以像英文论坛一样提供一个DEMO给我吗?
回复 使用道具 举报
KevinChen讲师达人认证 悬赏达人认证 SpreadJS 开发认证
论坛元老   /  发表于:2021-1-13 18:00:32
6#
您好,没有能直接实现您需求的Demo,自定义编辑器本质上就是把input组件嵌入到FlexGrid中,它们原本的事件都可以使用,给您发的几篇文章也是推荐您参考思路的。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部