Додзё dgrid редактирование нескольких ячеек
Можно ли редактировать несколько ячеек dgrid одновременно?
Я знаю, что мы можем редактировать одну ячейку за раз, дважды щелкнув по этой ячейке и обновив ее. И на onBlur
отредактированные данные обновляются для этой ячейки.
Но мое требование:
- нажмите кнопку edit-link/edit-button для каждой строки, в которой будут отображаться редакторы для всех редактируемых ячеек этой строки,
- обновлять / редактировать ячейки,
- затем нажмите кнопку сохранения (которая будет рядом с кнопкой редактирования) для той же строки,
- при нажатии ссылки / значка "Сохранить" значение отредактированной ячейки должно быть сохранено в хранилище / на сервере.
Ниже приведены некоторые из столбцов сетки.
// one of the editable columns others are also similar to this one..
editor({
label:"Outcome",
field:"outcome",
sortable: false,
editorArgs: {
options:[
{value: "1", label: "Opt1"},
{value: "2", label: "Opt2"},
{value: "3", label: "Opt3"},
]
},
renderCell: function(row, value, td, options){
put(td, "div", outcomeOptionsMap[value] || '');
}
}, Select, "dblclick" ),
// last column
{label:"Actions", field:"actions",sortable: false,
renderCell: function(row, value, td, options){
newValue = "<a href=\"#\" title=\"Edit\" onclick='editEntireRow(testgrid,event);'><img src='../static/images/edit.gif'/></a>";
newValue = "<a href=\"#\" title=\"Save\" onclick='saveRow(testgrid,event);'><img src='../static/images/edit.gif'/></a>";
newValue += " <a href=\"#\" title=\"Delete\" onclick='testgrid.store.remove("+row.id+");'><img src='../static/images/delete_icon.png'/></a>";
td.innerHTML = newValue;
}
Кстати, я использую dojo.store.JsonRest в качестве магазина.
Сеточная декларация
var MyGrid = declare([Grid, Selection, Keyboard]);
window.testgrid = new MyGrid(
{
store : Observable(Cache(jsonRest, Memory())),
selectionMode : "none",
getBeforePut: false,
columns: getColumns,
allowSelectAll: true,
minRowsPerPage: 5,
maxRowsPerPage: 20,
}, "gridContainer");
в настоящее время я пытаюсь что-то вроде этого, но не работает...
function editEntireRow(grid,event){
// cols 3,5,7,8 steps to the left of the Action column are editable
grid.edit(grid.left(grid.cell(event),3));
grid.edit(grid.left(grid.cell(event),5));
grid.edit(grid.left(grid.cell(event),7));
//grid.edit(grid.left(grid.cell(event),8));
}