使用 extjs 网格(使用组合框)Select,使用嵌套对象保存和删除数据
with extjs grid (with combobox) Select, save and delete data with nested object
例如,我有以下两个对象:
对象 1:
{
Id: 1,
Name: 'Menu 1',
MenuSuper: null
}
对象 2:
{
Id: 2,
Name: 'Menu 2',
MenuSuper: {
Id: 1
}
}
如何操作网格来保存、删除和select这个?
我的问题是 'MenuSuper'。如何在网格编辑器中使用带有组合框的嵌套对象?
抱歉我的延迟。
fiddle 来了:
https://fiddle.sencha.com/#view/editor&fiddle/1tk3
不过我已经解决了这个问题
当我将组合框作为列的 "editor" 时,我还为其设置了渲染。
例如:
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
var combo = this.columns[colIndex].getEditor();
var combostore = combo.getStore();
var dataIndex = combostore.findExact('id', value);
var recordCombo = combostore.getAt(dataIndex);
return recordCombo.get('name');
},
在这段代码中,我没有检查 "value" 是否为空,这是我的错误!这部分必须检查如下:
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
if(!value) return '';
var combo = this.columns[colIndex].getEditor();
var combostore = combo.getStore();
var dataIndex = combostore.findExact('id', value);
var recordCombo = combostore.getAt(dataIndex);
return recordCombo.get('name');
},
解决方法很简单!
谢谢!
例如,我有以下两个对象:
对象 1:
{
Id: 1,
Name: 'Menu 1',
MenuSuper: null
}
对象 2:
{
Id: 2,
Name: 'Menu 2',
MenuSuper: {
Id: 1
}
}
如何操作网格来保存、删除和select这个? 我的问题是 'MenuSuper'。如何在网格编辑器中使用带有组合框的嵌套对象?
抱歉我的延迟。
fiddle 来了: https://fiddle.sencha.com/#view/editor&fiddle/1tk3
不过我已经解决了这个问题
当我将组合框作为列的 "editor" 时,我还为其设置了渲染。
例如:
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
var combo = this.columns[colIndex].getEditor();
var combostore = combo.getStore();
var dataIndex = combostore.findExact('id', value);
var recordCombo = combostore.getAt(dataIndex);
return recordCombo.get('name');
},
在这段代码中,我没有检查 "value" 是否为空,这是我的错误!这部分必须检查如下:
renderer: function(value, metaData, record, rowIndex, colIndex, store, view) {
if(!value) return '';
var combo = this.columns[colIndex].getEditor();
var combostore = combo.getStore();
var dataIndex = combostore.findExact('id', value);
var recordCombo = combostore.getAt(dataIndex);
return recordCombo.get('name');
},
解决方法很简单! 谢谢!