谁能解释一下为什么当我第一次进入我的页面时我对数据源读取方法的调用工作正常,但是每当我调用它来刷新视图时都无法执行?作为记录,我在 Microsoft MVC 环境中使用 Kendo UI web(不是 MVC 的)。我可以在调试中清楚地看到读取永远不会被调用,但是如果我尝试介入,我会进入 JQuery 缩小文件......这对我来说是不可能调试的。
这是我们的代码示例:
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;
}
}
});
read 方法在订阅事件中被调用,如下所示:
$.subscribe("/Test/Detail", function (id) {
testDataSource.read([id]);
};
并在取消 viewmodel :
cancel: function () {
$("#errors").html("");
myViewModel.set("readonly", true);
testDataSource.read([myViewModel.get("test.ID")]);
},