gpt4 book ai didi

combobox - Extjs4 网格编辑器远程组合框 displayValue

转载 作者:行者123 更新时间:2023-12-05 01:34:32 25 4
gpt4 key购买 nike

我有一个网格,其中有一些要编辑的列。其中一列应通过组合框进行编辑。组合框存储是远程的并且是键值对类型:

['id', 'title']

组合框 valueField 是 id,displayValue 是 title。编辑单元格时,我的组合框会加载商店,选择 displayValue 并将 valueField 返回到网格编辑器。因此,该单元格随后会被 valueField 填充。

我的问题是:如何让单元格呈现 displayValue?仅仅从商店中选择它是不够的,因为渲染发生在商店加载之前。我现在的代码(仅适用于本地商店):
{
header: 'Column title',
dataIndex: 'id',
displayField: 'title',
editor: {
xtype: 'combo',
valueField: 'id',
store: 'myStore',
displayField: 'title'
},
renderer: function(value) {
//How do I find the editors combobox store?
store = new myStore();
index = store.findExact('id', value);
if (index != -1) {
rs = store.getAt(index).data;
return rs.title;
}
return value;
}
}

最佳答案

我是这样做的:

我有 2 个存储,存储 A 用于网格,存储 B 用于要选择的值(如上所述)。两家商店都有一个来自 storeB 的 ID。

我最终向 storeA 添加了一个字段 - storeB ID 的标题。在网格中,我将此标题作为隐藏列。在组合框编辑器列中,我使用此渲染器:

  renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
//Title is the title for the storeB ID
return store.data.items[rowIndex].data.title;
}

在网格上,我有一个用于编辑事件的监听器,用于使用组合框中的标题更新包含标题的列:
  grid.on('edit', function(editor, e, eOpts ) {
grid.store.data.items[e.rowIdx].set('title', editor.editors.items[0].field.rawValue)
})

希望这对其他人有帮助!

关于combobox - Extjs4 网格编辑器远程组合框 displayValue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8531538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com