Первое попадание, которое я получил для редактируемой сетки: https://www.npmjs.com/package/editable-grid
Примеры на https://www.npmjs.com/package/editable-grid#view -demos-with-creation-code .
В частности, пример Editable cells
- это тот, который, я думаю, вам нужен. Код для редактируемой таблицы в соответствии с примером будет следующим. Чтобы данные сохранялись в базе данных, вам нужно добавить кнопку, которая при нажатии отправляет данные редактируемой таблицы.
function (el) {
var grid = new Grid({
el: el,
stateManager: {
isEditable: function (rowId, colId) {
if (colId === 'readOnly') { return false; }
return true;
}
},
columns: [
{ id: 'readOnly', title: 'Title', width: '20%' },
{ id: 'string', title: 'String', width: '20%' },
{ id: 'cost', title: 'Cost', width: '20%', type: 'cost' },
{ id: 'percent', title: 'Percent', width: '20%', type: 'percent' },
{ id: 'date', title: 'Date', width: '20%', type: 'date' }
],
data: [
{ id: 'id-1', readOnly: 'Non editable field', string: 'Hello World', cost: 1000.23, percent: 0.45, date: '2014-03-27' },
{ id: 'id-2', readOnly: 'Non editable field', string: 'Good Morning', percent: 0.45 },
{ id: 'id-3', readOnly: 'Non editable field', cost: 1000.23, percent: 0.45, date: '2014-04-27' }
]
});
grid.render();
grid.on('editable-value-updated', function (/*obj*/) {
});
}
Скорее всего, вы можете получить текущие значения ячеек, используя grid
переменные. Если это невозможно, вы можете прослушать такие события, как
grid.on('editable-value-updated', function(params) {});
grid.on('editable-new-row-value-changed', function(newObj, colId) {});
grid.on('editable-new-row', function(newObj) {});
, чтобы получить изменения в данных и сохранить их во временном объекте.
PS Обратите внимание, что вы этого не делаете нужно сделать npm install
, чтобы получить библиотеку, вы можете использовать автономные версии.
- http://skinnybrit51.com/editable-grid/dist/editable_grid.min.js
- http://skinnybrit51.com/editable-grid/dist/editable_grid.min.css
Требуются оба файла js и css.