Javascript 具有服务器端分页功能的kogrid+;筛选:self.sortedData不是一个函数
我遇到了淘汰赛和kogrid的问题。经过几次测试,我成功地在这把小提琴中重现了它: 简而言之,我有一个示例VM(ItemsViewModel),它应该向kogrid提供数据,并由服务器实现过滤和分页。vm公开一个gridOptions对象,其中包含kogrid所需的所有数据,并调用一个刷新函数从服务器获取数据。在fiddle中,我用一些伪内联数据替换了ajax调用以获取真实数据 现在,在加载页面时,我在kogrid源代码中经常遇到以下错误: 错误:TypeError:self.sortedData不是函数源文件: 电话号码:1473 相反,如果我只使用名为dummyData的可观察数组和网格的div,就像在基本的kogrid示例()中一样,这个错误不会出现;所以我想我在使用图书馆的时候出了点问题 以下是我的虚拟机的相关部分:Javascript 具有服务器端分页功能的kogrid+;筛选:self.sortedData不是一个函数,javascript,knockout.js,kogrid,Javascript,Knockout.js,Kogrid,我遇到了淘汰赛和kogrid的问题。经过几次测试,我成功地在这把小提琴中重现了它: 简而言之,我有一个示例VM(ItemsViewModel),它应该向kogrid提供数据,并由服务器实现过滤和分页。vm公开一个gridOptions对象,其中包含kogrid所需的所有数据,并调用一个刷新函数从服务器获取数据。在fiddle中,我用一些伪内联数据替换了ajax调用以获取真实数据 现在,在加载页面时,我在kogrid源代码中经常遇到以下错误: 错误:TypeError:self.sortedDa
function ItemsViewModel() {
var self = this;
self.dummyArray = ko.observableArray([{
name: "Goofy",
age: 27
}, {
name: "Mickey",
age: 33
}]);
self.items = ko.observableArray([]);
self.filterOptions = {
filterText: ko.observable(""),
useExternalFilter: true
};
self.pagingOptions = {
pageSizes: ko.observableArray([5, 10]),
pageSize: ko.observable(20),
totalServerItems: ko.observable(0),
currentPage: ko.observable(1)
};
self.gridOptions = {
data: self.items,
enablePaging: true,
multiSelect: false,
filterOptions: self.filterOptions,
pagingOptions: self.pagingOptions,
columnDefs: [{
field: "id",
displayName: "ID"
}, {
field: "title",
displayName: "Title"
}]
};
self.refresh();
}
此函数用于获取数据(目前我没有过滤):
在html中,更改
到
谢谢,成功了!从文档来看,似乎需要一个包含数据属性的对象,但事实并非如此。
ItemsViewModel.prototype.refresh = function () {
var params = {
page: this.pagingOptions.currentPage(),
pageSize: this.pagingOptions.pageSize(),
sortBy: "datemodified",
isSortDesc: true
};
// dummy data (2 pages x 5)
var data = {
page: 1,
totalPages: 2,
totalRecords: 10,
records: []
};
for (var i = 0; i < 10; i++) {
data.records.push({
id: i,
title: "title " + i
});
}
ko.utils.arrayPushAll(this.items, data.records);
this.pagingOptions.totalServerItems(data.totalRecords);
}
koGrid: { data: gridOptions }