我使用来自JSON数据的SimpleGrid和Loaded数据在knockout中创建了分页表。我创建了一个搜索栏来过滤JSON数据中的值,并在分页表中显示结果。
我使用jquery Filter方法和Toggle方法从表中搜索数据。问题是搜索仅适用于当前页面(搜索仅适用于tbody)不从分页简单网格的剩余页面中检索数据
这是我在分页简单网格中搜索的jquery代码
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
$(".ko-grid tbody tr").filter(function() {
$(this).toggle($(this).text().toLowerCase().indexOf(value)>-1);
});
});
搜索工作对于简单网格中的当前页面来说很简单。但我希望搜索从JSON过滤数据并在SimpleGrid表中显示结果。
以下是从当前页面1过滤数据的样本输出
Image that Filter Search Result From Current Page Only
但我希望从所有页面加载搜索结果
答案 0 :(得分:0)
如果要将搜索逻辑应用于整个网格,则需要过滤掉原始的项目数组,并将其作为源提供给网格。 因此,您需要创建一个额外的计算机,它将取决于搜索值和原始数组,并将数据网格源从原始项目替换为已过滤:
var ctx = this;
$("#myInput").on("keyup", function() {
var value = $(this).val().toLowerCase();
ctx.searchText(value);
});
然后在keyUp上你可以更新你的observable(或者可以重写它以直接用knockout绑定搜索值):
{{1}}