У меня есть сетка редактора, где, если конкретная ячейка находится в фокусе (редактируется), появляется окно с панелью дерева, позволяющее пользователю выбрать узел из панели дерева в качестве нового значения ячейки.Таким образом, пользователь фактически не редактирует соответствующую ячейку, а использует окно для выбора нового значения.Однако у меня возникают трудности с программной установкой значения рассматриваемой ячейки.
Ниже приведен код, который я использую для настройки сетки, включая модель столбца, которая выбирает, какой редактор использовать для ячейки, в зависимости оттип значения:
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
})
Ниже приведен мой код для изменения значения ячейки после выбора пользователем из древовидной панели.
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) ), но пришли с пустыми руками.Я просматривал API и форумы ExtJS на предмет подсказки, но также пришел с пустыми руками.