Javascript 分页不适用于KO网格
我正在使用KO grid,它似乎可以很好地加载所有数据。现在,我正在处理分页部分,它似乎不能正常工作。是的,我在底部进行分页控制,但当它能够决定页面大小时,它似乎不起作用。根据Javascript 分页不适用于KO网格,javascript,jquery,gridview,knockout.js,knockout-2.0,Javascript,Jquery,Gridview,Knockout.js,Knockout 2.0,我正在使用KO grid,它似乎可以很好地加载所有数据。现在,我正在处理分页部分,它似乎不能正常工作。是的,我在底部进行分页控制,但当它能够决定页面大小时,它似乎不起作用。根据https://github.com/ericmbarnard/KoGrid/wiki/Configuration 1.页面大小:[5,10,25]--似乎显示选项,但当我将选择从5更改为10时,它似乎无法处理这些选项。 2.pagesize://somenumber——破坏代码 我在JSFIDLE上有它的工作模型: 有什
https://github.com/ericmbarnard/KoGrid/wiki/Configuration
1.页面大小:[5,10,25]--似乎显示选项,但当我将选择从5更改为10时,它似乎无法处理这些选项。
2.pagesize://somenumber——破坏代码
我在JSFIDLE上有它的工作模型:
有什么建议吗?好吧,KoGrid中的分页似乎没有发挥您所希望的魔力 以下是GitHub上KoGrid wiki的示例链接: 在查看HTML页面的源代码时,可能会看到视图模型声明的开头,而无需滚动(当然,这取决于屏幕分辨率)。无论如何,这是从第30行开始的 请注意,视图模型中有一个名为
pageSize
的可观察对象,它被设置为50
向下滚动一点,可以看到名为filter
、sort
和getPagedDataAsync
的函数,用于过滤数据、排序数据和为当前页面创建数据集
以下是getPagedDataAsync
函数的代码:
this.getPagedDataAsync = function (pageSize, page, filterInfo, sortInfo) {
setTimeout(function () {
var data = window.getExampleData();
var filteredData = filter(data(), filterInfo);
var sortedData = sort(filteredData, sortInfo);
var pagedData = sortedData.slice((page - 1) * pageSize, page * pageSize);
self.myObsArray(pagedData);
}, 0);
};
在看不到视图模型其余部分的详细信息的情况下,通过阅读上面的代码,您应该能够知道,此函数首先检索要在此示例页面中显示的所有数据,然后过滤数据并对数据进行排序
然后,对数据数组进行切片以提取当前页面要查看的数据,并将该切片传递给myObsArray
可观察数组,该数组用于在网格中显示数据
下面是本例中网格的声明:
<div id="sandBox" class="example" style="height: 600px; max-width: 700px;"
data-bind="koGrid: {
data: myObsArray,
columnDefs: [
{ field: 'Sku', width: 140 },
{ field: 'Vendor', width: 100 },
{ field: 'SeasonCode', displayName: 'Season Code', width: 150 },
{ field: 'Mfg_Id', displayName: 'Mfg ID', width: 180 },
{ field: 'UPC', width: 170 }
],
autogenerateColumns: false,
isMultiSelect: false,
enablePaging: true,
useExternalFiltering: true,
useExternalSorting: true,
filterInfo: filterInfo,
sortInfo: sortInfo,
pageSize: pageSize,
pageSizes: [25, 50, 75],
currentPage: currentPage,
totalServerItems: totalServerItems,
selectedItem: selectedItem }">
</div>
页面设置仅处理JS更改,但页面工具(上一页、下一页等)在我在koGrid声明中添加了totalServerItems
选项之后才处于活动状态
同样,如果您有任何问题,请告诉我。我已更新了viewModel以模拟示例的行为。它加载到我的本地服务器上,但仍然不根据我所做的更改设置分页。我将代码发布在Fiddle上,但它似乎不起作用:
pageSize: pageSize,
currentPage: currentPage,
totalServerItems: totalServerItems,
selectedItem: selectedItem