use*_*643 1 jquery filter jqgrid
我使用jqgrid构建了一个网格,并启用了过滤功能.检索的数据类型是json,我正在使用loadonce功能.当我应用一些过滤器时,它似乎总是隐藏在记录上.我正在使用网格寻呼机只是为了拥有我想在网格上添加的额外按钮,我正在删除gridpager按钮(下一个,最后一个等等).我删除了寻呼机,看看是否有任何冲突,但我仍然得到同样的错误.当网格加载时我得到'View 1 - 7 of 7'并且我可以看到7条记录,当我应用过滤器时,输出是'View 1 - 3 of 4'.这意味着4条记录与过滤器匹配,但它只保持显示3.现在如果我清除过滤器,我得到"查看1 - 6的7",再次丢失一条记录.我用firebug检查了表,看看记录是否隐藏但仍然没有.我尝试了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
});
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我不明白以下内容:为什么你从服务器返回一行,你永远不想显示?删除服务器端已有的数据是不是更容易?如果不可能,你可以删除里面的行loadComplete.顺便说一下,在当前代码中,我无法看到您设置自定义过滤器的位置,这使得网格的一行不可见.
还有一句话:你永远不应该使用rowNum: -1.只rowNum: 10000允许正值(如).如果你用它是特别重要的loadonce: true,其chynges的datatype以'local'网格的第一填充之后.rowNum不允许使用否定.
| 归档时间: |
|
| 查看次数: |
2073 次 |
| 最近记录: |