【发布时间】:2011-12-01 14:59:28
【问题描述】:
我使用 jqgrid 构建了一个网格并启用了过滤。检索到的数据类型是 json,我正在使用 loadonce 功能。当我应用一些过滤器时,它似乎总是隐藏在记录中。我正在使用网格寻呼机只是为了在网格上添加我想要添加的额外按钮,并且我正在删除网格寻呼机按钮(下一个、最后一个等)。我删除了寻呼机,看看是否有任何冲突,但我仍然得到同样的错误。当网格加载时,我得到“查看 1 - 7 个,共 7 个”并且我可以看到 7 条记录,当我应用过滤器时,输出是“查看 1 - 3 个,共 4 个”。这意味着 4 条记录与过滤器匹配,但它一直只显示 3 条。现在,如果我清除过滤器,我会得到“查看 1 - 6 条,共 7 条”,再次缺少一条记录。我用萤火虫检查了表格,看看记录是否隐藏但仍然没有。我尝试了 firefox、chrome、IE 并且在所有浏览器中我都得到了同样的错误。 jqgrid 版本是 4.1.1。任何线索为什么会发生这种情况?
下面你可以看到代码:
jq($grid).jqGrid({
url: $url,
datatype: 'json',
mtype: 'Get',
colNames: colNamesList,
colModel: $colModel,
jsonReader : {
repeatitems:false,
id: "id",
},
rowNum: -1,
width: jq(document).width()-20,
height: 200,
pager: $pagerId,
viewrecords: true,
fixed: true,
shrinkToFit: false,
loadonce: true,
caption: $caption,
beforeRequest: function(){
if (!initialized) {
jq(blockElement).block({ message: '<h1 class="loadingMsg">Grid is loading, please wait...</h1>' });
}
},
loadComplete: function(data){
if (loadCompleteCallback != null){
loadCompleteCallback(data);
}
if (!initialized) {
jq.jGrowl('"' + $caption + '" Grid loaded.', {header:'Load Notification'});
jq(blockElement).unblock();
initialized = true;
}
}
});
if (!initialized) {
jq.jGrowl('"' + $caption + '" Grid loaded.', {header:'Load Notification'});
jq(blockElement).unblock();
initialized = true;
}
}
});
jq($grid).jqGrid('filterToolbar',{
stringResult: true,
searchOnEnter : false
});
提前致谢!
【问题讨论】: