0
var url = base_url + "/api/v1/users/getUsers";
var dataSource = new kendo.data.DataSource({
transport: {
read: function (options) {
$.ajax({
type: 'GET',
url:url,
dataType: 'json',
data: { searchTerm: $("#searchTerm").val().trim() },
success: function (result) {
options.success(result);
},
error: function (result) {
options.error(result);
}
});
}
},
schema: {
data: function (result) {
return result.model;
},
total: function (result) {
return result.model.length;
},
},
pageSize: 5
});
$("#matches").kendoListView({
dataSource: dataSource,
autoBind: false, // if set to false the widget will not bind to the data source during initialization.
template: kendo.template($("#matchesListViewTemplate").html())
});
$("#pager").kendoPager({
dataSource: dataSource,
autoBind: false
});
$(document).keypress(function (e) {
if (e.which == 13) {
e.preventDefault();
var searchTerm = $("#searchTerm").val().trim();
if (searchTerm.length < 1)
return;
dataSource.read();
dataSource.page(1); // makes another call to the remote service
}
});
因爲數據源是遠程的,當我們調用dataSource.page(1),劍道問題再次調用遠程服務。這種行爲在這個so post描述:
如果你是做服務器端分頁應該夠做grid.dataSource.page(1),因爲這將調用讀完全按照你已經實現。
我必須改變什麼,以便在我用新的searchTerm搜索之後,API調用將只執行一次,並且尋呼機將轉到第1頁而不再調用?
我試過用dataSource.query()但仍然沒有運氣?我希望我足夠證明。