所以,玩这个,我得到了解决方案。这里是....
所以,我像往常一样进行 AJAX 调用以从服务器获取数据
$.ajax({
url: config.EnvironmentDomain + config.ProductController + '/?PageSize=' + ps + '&ActiveOnly=' +
ao + '&Index=' + si,
type: "GET",
async: false,
success: function (data) {
ko.applyBindings(new PageViewModel(data.length), document.getElementById('pg'));
dataFromServer = data;
Rendering();
},
error: function () { }
});
其中 dataFromServer 是简单的 JS 全局变量,用于临时保存来自服务器的数据(以 JSON 格式)。
我的渲染功能做 DHTML
function Rendering(){
var fromPage = parseInt($(".pagexofx").children(".FI").text());
var toPage = parseInt($(".pagexofx").children(".LI").text());
var totalCount = dataFromServer.length;
var si = fromPage - 1;
var ei = toPage;
for (var x = si; x < ei; x++) {
div.append('<ul id="eachProd" style="list-style: none" class="remove">' +
'<li>' +
'<div style="border:2px solid black;" class="span4">' +
'<p> <strong><span>' + dataFromServer[x].Name + '</span></strong></p>' +
'<p> <strong>SKU:</strong><span> <strong>' + dataFromServer[x].SKU
+ '</strong></span></p>' +
'<p> <strong>Last Updated:</strong><span> ' + getFormattedDate(dataFromServer
[x].LastUpdateTS) + '</span></p>' +
' <a href="">Edit</a> / <a
href="">Qty./Price</a> / ' +
'<a href="">Copy</a> / <a href="">Delete</a>' +
'</div>' +
'</li>' +
'</ul>'
)
}
}
我的 PageView 模型在下面....
var PageViewModel = function (len) {
var self = this;
self.SetTotalResults = ko.observable(30);
// holds the total item count
self.TotalResults = ko.observable(len);
// actual pager, used to bind to the pager's template
self.Pager = ko.pager(self.TotalResults);
// Subscribe to current page changes.
self.Pager().CurrentPage.subscribe(function () {
self.search();
});
self.search = function () {
self.TotalResults(dataFromServer.length);
}
} // /视图模型