1金币
我的需求是表格有两列:人员和职位。人员列需要下拉控件,数据源是类型为对象数组([{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[e.col].binding === 'name') {
- if (editor) {
- ;(editor.control as ComboBox).selectedIndex = -1
- }
- }
- })
复制代码
|
|