JqGrid 自定义搜索filterModel中sopt写法

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有两种写法

  1. 当sopt为字符串的时候写法为

    {value : "1:已使用;0:未使用"}
  2. 当sopt为对象的时候写法为

     sopt: {value :{'':'全部',1:'已使用',0:'未使用',2:'使用中',3:'已过期'}},

官网wiki

你可能感兴趣的