#javascript #jsgrid
#javascript #jsgrid
Вопрос:
Я знаю, что есть альтернативы, но я действительно хочу использовать jsGrid в своем проекте. Я использую версию 1.5.2, указанную на их веб-сайте, и извлекаю ее из CDN. Все, что я хочу, это чтобы обновление вызывалось так, как описано, чтобы я мог выполнить $.ajax
, но, похоже, этот обратный вызов ничего не делает. Вот моя реализация:
$(function() {
$("#jsGrid").jsGrid({
width: "100%",
height: "600px",
inserting: false,
editing: true,
sorting: true,
paging: false,
autoload: true,
controller: {
loadData: function(filter) {
return $.ajax({
type: "GET",
url: "@Url.Action("getOptions", New With {.communityID = 1})",
data: filter
});
},
updateItem: function (item) {
console.log('hello??');
return $.ajax({
type: "PUT",
url: "/items",
data: item
});
}
},
...
});
})
-
В документации говорится, что ожидаются методы контроллера
для возврата обещаний. Все в порядке, поскольку я использую jQuery 3.0 и
$.ajax
возвращает теперь стандартизированное обещание Javascript / A (которое
чего ожидает jsGrid). -
Я знаю, что объект контроллера правильно понимается, потому что он вызывает
loadData()
и заполняет красивые строки из моей службы REST. -
После просмотра многих других примеров кажется, что все работают с очень простым кодом, представленным в документации. Мой
console.log
никогда не попадает в точку останова, и вызов AJAX никогда не выполняется на вкладке сеть. -
Я переключился на не уменьшенную версию jsgrid.js и я никогда не получаю никаких консольных ошибок.
-
Когда я размываю строку (удаляюсь от редактируемой строки), значение возвращается к тому, что было изначально.
Может быть, я просто не понимаю, как это работает? Чтобы сохранить изменения в моей БД, я должен искать другое событие? Любая помощь была бы очень признательна!
Комментарии:
1. Когда вы ожидаете
updateItem
вызова?updateItem
должен вызываться после сохранения после редактирования. У вас есть пример с published anywhere, чтобы увидеть проблему?
Ответ №1:
Ответьте здесь, если кто-нибудь ищет это.
Я ожидал, что updateItem
событие будет запущено, когда поле было отредактировано, а затем размыто. Это не тот случай — вы ДОЛЖНЫ включить поле «control», которое по умолчанию предоставит вам кнопку сохранения. Это было просто отлично для моих целей.
$("#jsGrid").jsGrid({
.
.
fields: [
.
.
{ type: "control" }
]
});