我有一个编辑网格,在其中,如果特定单元格正在焦点(正在编辑),则会弹出一个包含树形面板的窗口,允许用户选择来自树面板的节点作为单元格的新值。这样,用户实际上并没有编辑有问题的单元格,而是使用窗口选择新值。但是,我在以编程方式设置有问题的单元格的值方面遇到了困难。
以下是我用来设置网格的代码,包括选择单元格编辑器的列模型,取决于值类型:
var editorCM = new Ext.grid.ColumnModel({
//config
,editors : {
//rest of editors
id : new Ext.grid.GridEditor(new Ext.form.TextField({readOnly : true}))
}
,getCellEditor : function(col, row) {
//choose editor depending on the type value of a cell
}
})
var editorGrid = new Ext.grid.EditorGridPanel({
//rest of config
,cm : editorCM
})
以下是我的代码,当用户从treepanel中选择后可以更改单元格的值。
function submitNode(newValue) {
var temp = editorGrid.GetSelectionModel().getSelectedCell(); //returns array containing column and row position of selected cell, which value we want to change.
//temp[1] = column index, temp[0] = row index
//Gets the cell editor at specific position and sets new value for that cell
editorGrid.getColumnModel().getCellEditor(temp[1], temp[0]).setValue(newValue);
}
我也尝试了几种其他方法(都包括setValue(newValue) strong>),但都没有结果。我查看了API和ExtJS论坛以寻找任何线索,但同样没有结果。