Я хотел бы получить jqGrid, в котором для одного определенного столбца вместо преобразования ячейки в текстовое поле всплывает форма, которую необходимо заполнить. Когда форма закрыта, введенные данные сохраняются в ячейке. Пользователь никогда не имеет возможности напрямую взаимодействовать с ячейкой, чтобы не повредить данные.
Посмотрите на картинку, у меня есть пользовательская таблица, с которой я хочу взаимодействовать. Там также случается, что где-то сидит книжный стол. Когда пользователь нажимает на столбец fav_books, появляется всплывающее окно, заполненное таблицей книг. Пользователь выбирает несколько книг, нажимает «ОК», и идентификаторы этих книг сохраняются в ячейке.
Пока что я просто заинтересован в том, чтобы всплывающее окно отображалось. custom_element
и custom_value
не помогают, потому что они превращают ячейку в возвращаемый элемент DOM. Я попытался использовать afterEditCell
вот так (только для подтверждения концепции), но не смог сохранить ячейку:
grid.jqGrid({
...
afterEditCell: function(rowid, name,val,iRow,iCol){
if(name=='fav_books'){
alert("see my table?");
//which one saves (edits?) the cell?
//grid.jqGrid('setRowData',rowid,{fav_books: 'hi'});
//grid.jqGrid('setCell',rowid, 'fav_books','hi',null,null,false);
//grid.jqGrid('saveCell',iRow,iCol);
}
},
...
});
Могу ли я завершить процесс редактирования ячейки внутри afterEditCell, или мне нужно будет иметь пользовательские функции для каждого события после afterEditCell? Есть ли способ сделать это уже встроенным в jqGrid (а я просто усложняю себе жизнь?)