共计 825 个字符,预计需要花费 3 分钟才能阅读完成。
JqGrid 自定义搜索
从源码中找答案
在用 JqGrid 写自定义搜索的时候,搜索字段为 select 时候,选项 sopt 这个咋写都不对,一怒之下查看了这块源码如下
if ($t.sopt.value) {
var oSv = $t.sopt.value;
var elem = document.createElement(“select”);
$(elem).attr({
name: $t.index || $t.name,
id: “sg_” + $t.name
}).attr($t.sopt);
var so, sv, ov;
if (typeof oSv === “string”) {
so = oSv.split(“;”);
for (var k = 0; k < so.length; k++) {
sv = so[k].split(“:”);
ov = document.createElement(“option”);
ov.value = sv[0];
ov.innerHTML = sv[1];
if (sv[1] == $t.defval) {
ov.selected = “selected”;
}
elem.appendChild(ov);
}
} else if (typeof oSv === “object”) {
for (var key in oSv) {
if (oSv.hasOwnProperty(key)) {
i++;
ov = document.createElement(“option”);
ov.value = key;
ov.innerHTML = oSv[key];
if (oSv[key] == $t.defval) {
ov.selected = “selected”;
}
elem.appendChild(ov);
}
}
}
}
sopt 的两种写法
有源码可知:sopt 有两种写法
当 sopt 为字符串的时候写法为
{value : “1: 已使用;0: 未使用 ”}
当 sopt 为对象的时候写法为
sopt: {value :{”:’ 全部 ’,1:’ 已使用 ’,0:’ 未使用 ’,2:’ 使用中 ’,3:’ 已过期 ’}},
官网 wiki