Я работаю на Kendo.Grid
, где я делаю CRUD
на данных.
Сценарий по умолчанию для пакетных операций Kendo.Grid's
- удаление строк на стороне клиента и их запоминание. Затем при добавлении новых строк или обновлении любых строк пакет отправляется на сервер.
Тем не менее, в такой ситуации пользователь может удалять строки из сетки, но когда приходит точка к SAVE CHANGES
, удаленные строки больше не отображаются.
Итак, я пытаюсь вместо того, чтобы удалять строки из сетки на стороне клиента, я просто отмечаю их для удаления, меняя строку css
на прозрачную:
.disabledGridRow {
opacity: 0.5;
pointer-events: none;
}
У меня есть пользовательский Удалить: columns.Command(c => c.Custom("Delete").Click("DeleteRecord"));
и затем при удалении я вызываю следующие функции:
function DeleteRecord(e) {
e.preventDefault(e);
var grid = $("#TicketReportPropertyGrid").getKendoGrid();
var row = $(e.target).closest("tr");
var dataItem = grid.dataItem(row);
dataItem.deleted = true;
row.addClass('disabledGridRow');
}
Отмечает строку для удаления.
Но проблема в том, что когда я хочу добавить новую запись, все отмеченные строки становятся неотмеченными, и я теряю след того, что я хочу удалить.
Что я хочу сделать, это сохранить эти строки отмеченными при нажатии ADD NEW RECORD
.
Итак, я думал о какой-то логике в событии Grid Edit
, которое запускается каждый раз, когда данные редактируются или добавляются в сетку:
function onEdit(e) {
var rowsCount = 0;
var ids = [];
if (e.model.isNew()) {
rowsCount = e.sender.dataSource.data().length;
if (rowsCount > 0) {
for (var i = 0; i < rowsCount; i++) {
if (e.sender.dataSource.data()[i].deleted) {
ids.push(e.sender.dataSource.data()[i]);
}
}
}
console.log(ids);
ShowTotal(e, 'new');
e.model.set("TicketID", $('#TicketID').attr('text'));
}
else {
ShowTotal(e, 'edit');
}
}
То, что я хочу сделать, - это получить все строки, помеченные для удаления, и сохранить их css
в соответствии с тем, что я установил для них, когда они были отмечены. В этом случае идентификаторы array
сохранят все строки, помеченные для удаления.
Как установить здесь css
, чтобы пометить строки как удаленные?