Cancel delete row in treetable

Приветствую. Возникла следующая задача. Необходимо в компоненте “DataTable” произвести удаление записи только после положительного ответа сервера. Использую “updateFromResponse”, для указания что обновление необходимо производить после ответа от сервера. Точнее приходится использовать конструкцию “webix.dp(‘MyTable’).config.updateFromResponse = true”, т.к. выставление параметра “updateFromResponse=true” в обычном конфиге “DataTable” не работает. Так вот, каким образом мне при получении плохого ответа от сервера сказать “DataTable” что бы операция отменилась. Или какой должен быть ответ сервера в таком случае? Например вызвав удаление записи “$$(‘MyTable’).remove($$(‘MyTable’).getSelectedId())”, она сразу удаляется из таблицы, а потом вызывается сервер и приходит ответ от сервера. Как сказать, что ответ плохой и не нужно удалять запись?


Greetings. There was a following problem. It is necessary to make a “DataTable” component removal record only after a positive response from the server. Use “updateFromResponse”, to indicate that the update should be performed after the response from the server. More accurately is necessary to use the construction “webix.dp(‘MyTable’).config.updateFromResponse = true”, because parameter setting “updateFromResponse = true” in the usual config “DataTable” does not work. So that’s how I wrong when receiving a response from the server that would say “DataTable” operation canceled. Or what should be the server’s response in this case? For example caused by the removal recording “$$(‘MyTable’).Remove($$(‘MyTable’).GetSelectedId())”, it is immediately removed from the table, and then calls the server and the response comes from the server. How to say that the answer is bad and do not need to delete the entry?

Все операции датапроцессора построены так что клиентский код сразу выполняет данные и ожидает подтверждения от сервера. В вашем случае лучше не использовать датапроцессор вовсе

webix.ajax().post("table.php", { operation: "delete", id: id }).then(function(){
    $$("table").remove(id);
});

или

dp.attachEvent("onAfterDelete", function(obj, id, details){
  table.remove(id);
})
//instead of table.remove use dp's method
dp.save(id, "delete", table.getItem(id));

Dataprocessor is created in such way that all operations are executed on client side immediately. So if you are deleting row in datatable, then dataprocesso will not wait for server side confirmation.

It will be better to use direct ajax communications in your case instead of dataprocessor usage.