我试图理解所有标准的使用选项 。 似乎所有标准的目的都在于您希望网格忽略此搜索标准, 并返回所有行, 而不考虑这个值 。 如果是这样的话, 为什么用户甚至想要选择这个搜索标准 - 他们可以直接删除它, 并实现同样的效果 。 或者我漏掉了什么?
Update
网格使用函数 createEl: 函数( eltype, options, vl, autowidth, ajaxso) code> 来创建搜索表格的选择。 不幸的是, 此选择总是向列表添加 all code> 标准, 即使它有 < code> " 的搜索值, 也不能匹配任何行 。 一种变通办法是修改网格以跳过具有空值的选择选项。 您可以使用源文件 < code> jquery.jqGrid.rc.js code> 添加以下代码来跳过 < code> all
选项 :
else if (sv.length > 1 && sv[0].length === 0) continue;
这是在 createEl
的上下文中:
if(typeof options.value === string ) {
so = options.value.split(delim);
for(i=0; i<so.length;i++){
sv = so[i].split(sep);
if(sv.length > 2 ) {
sv[1] = $.map(sv,function(n,ii){if(ii>0) { return n;} }).join(sep);
} else if (sv.length > 1 && sv[0].length === 0) continue; // <-- Change this line
ov = document.createElement("option");
ov.setAttribute("role","option");
ov.value = sv[0]; ov.innerHTML = sv[1];
elem.appendChild(ov);
if (!msl && ($.trim(sv[0]) == $.trim(vl) || $.trim(sv[1]) == $.trim(vl))) { ov.selected ="selected"; }
if (msl && ($.inArray($.trim(sv[1]), ovm)>-1 || $.inArray($.trim(sv[0]), ovm)>-1)) {ov.selected ="selected";}
}
如果您需要简化版本, 请更新 jqGrid 的“ src” 版本, 然后通过 Google 关闭编译器运行 。
我不确定这是一般目的的改变,这就是为什么我称它为现在的工作。 更长远地说,需要找到更好的解决方案,这样jqGrid才能补好...我会在以后再找一些时间来重新讨论这个问题。
那有帮助吗?