#javascript #tabulator
#javascript #табулятор
Вопрос:
Я использую tabulator.js который каждый раз, когда пользователь редактирует ячейку ( cellEdited:function
), вызывает функцию для сохранения определенного значения в БД и после этого обновляет (перезагружает) всю таблицу.
Что я хочу сделать, так это сохранить индекс строки и столбца в переменной перед сохранением. После обновления табулятора фокус ячейки будет применен к конкретной ячейке, которая была раньше.
Есть ли какая-либо функция для прямого доступа к значению ячейки? Нравится tableName.setValue(rowId, ColId, value);
моя типичная настройка таблицы:
function setup_table(dataset){
table = new Tabulator(document.getElementById("qc_table"), {data:dataset,layout:"fitColumns",addRowPos:"bottom",index:"ID",
keybindings:{"navNext" :'tab("9")'},
columns:[{title: "ID", field: "ID", headerSort:false, width: 80},
{title: "title1", field: "f1",width: 80,editor:"input"},
{title: "title2", field: "f2",width: 80,editor:"input"},
{title: "title3", field: "f3",width: 80,editor:"input"}],
cellEdited:function(cell){
// -- HERE GET ROW INDEX AND COLUMN INDEX BEFORE SAVE--
// SAVE TABLE TO DB
saveTable().then(function(done){
// CODE TO REFRESH TABLE
// -- HERE APPLY FOCUS TO THE PREVIOUS EDITED CELL --
});
}
});
}
Есть идеи?
Спасибо за ваше время!
Ответ №1:
Не должно быть необходимости обновлять таблицу, вы можете просто вызвать функцию setValue для компонента ячейки, переданного в cellEdited
обратный вызов.
cellEdited:function(cell){
// SAVE TABLE TO DB
saveTable().then(function(done){
cell.setValue("whatever value you want")
});
}