CherylS 发表于 2021-1-11 14:31:17

Flexgrid中使用自定义ComboBox控件

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


KevinChen 发表于 2021-1-11 15:10:55

您好,您要的效果,在目前最新的2020版本上已经实现了,请参考这篇Demo:
https://www.grapecity.com/wijmo/demos/Grid/Editing/CustomEditors/purejs

建议您将Wijmo升级到目前的最新版本。新版本会向下兼容原版本。

CherylS 发表于 2021-1-12 09:07:49

我们已经买了2017版的,2017版本的能实现我要的效果吗

KevinChen 发表于 2021-1-12 11:17:49

您好,2017版本无法实现下拉图标UI效果,另外几个问题,可以通过代码定制尝试实现,参考这几篇帖子尝试:
https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=76339&extra=page%3D1

https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=76344&extra=page%3D1

https://gcdn.grapecity.com.cn/forum.php?mod=viewthread&tid=76347&extra=page%3D1

CherylS 发表于 2021-1-13 17:25:08

你好。你发的三个链接对我的帮助不是很大,可以像英文论坛一样提供一个DEMO给我吗?

KevinChen 发表于 2021-1-13 18:00:32

您好,没有能直接实现您需求的Demo,自定义编辑器本质上就是把input组件嵌入到FlexGrid中,它们原本的事件都可以使用,给您发的几篇文章也是推荐您参考思路的。
页: [1]
查看完整版本: Flexgrid中使用自定义ComboBox控件