Может ли кто-нибудь объяснить мне, почему мой вызов метода чтения источника данных прекрасен при первом вводе моей страницы, но не выполняется, когда я вызываю его, чтобы обновить представление? Для записи я использую веб-интерфейс Kendo UI (а не MVC один) в среде Microsoft MVC. Я могу отчетливо видеть в отладке, что чтение никогда не вызывается, но если я попытаюсь войти, я попадаю в мини-файл JQuery ... который невозможно отлаживать для меня.Метод чтения() Kendo UI datasource read() не выполняется
Вот пример нашего кода:
var testDataSource = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
url: "/Test/GetById",
data: { id: options.data[0] },
beforeSend: function() {
utils.hasPendingChanges = false;
myViewModel.set("isDirty", false);
},
success: function(result) {
utils.convertDates(result);
myViewModel.set("test", result);
kendo.bind($("#testForm"), myViewModel);
}
});
cache: false
},
parameterMap: function() {
return kendo.stringify(myViewModel.test);
}
},
change: function() {
var test= this.view()[0];
if (test!= null) {
myViewModel.set("test", test);
$("#testForm").show();
kendo.bind($("#testForm"), myViewModel);
} else {
$("#testForm").hide();
}
},
schema: {
data: function(data) {
if (data.notvalid) {
$(data.data).each(function() {
$("#errors").append('<li>' + this.toString() + '</li>');
});
} else {
myViewModel.set("readonly", true);
}
return data.data;
}
}
});
Метод чтения вызывается в подписываться событие так:
$.subscribe("/Test/Detail", function (id) {
testDataSource.read([id]);
};
И отмены из ViewModel:
cancel: function() {
$("#errors").html("");
myViewModel.set("readonly", true);
testDataSource.read([myViewModel.get("test.ID")]);
},
исходное сообщение Передаваемые параметры для вызова Ajax, вы можете привести пример использования функции чтения, которая также передает параметры? Я не могу найти таких примеров в документации Kendo. Благодарю. –
@AlanFisher Вы должны, вероятно, опубликовать это как отдельный вопрос, чтобы получить ответ. Однако, когда я столкнулся с вопросом, я могу дать простой ключ. Если вы хотите отправить данные на URL-адрес Read-сервера, вы можете использовать параметр data: для вызова ajax. Например, данные: {Value1: 'foo', Value2: 'bar'}. –