jqGrid高级搜索对话框 - 具有下拉选择的列

时间:2012-05-11 14:01:13

标签: jqgrid

我有一个带有高级过滤器的jqGrid 4.3.1。某些列是布尔类型,如是/否类型,我在创建新的高级过滤器行时选择列类型时显示下拉列表。 例如。假设第2列是IsActive(布尔)类型,当选择它时,我显示了一个下拉菜单而不是文本框。 覆盖jqGrid高级过滤器的代码如下:

var cols = grid.jqGrid("getGridParam", "colModel");
for (var i = 0; i < cols.length; i++) {
if (cols[i].stype && cols[i].stype == "select" && cols[i].searchoptions && cols[i].searchoptions.buildSelect && $.isFunction(cols[i].searchoptions.buildSelect)
&& !cols[i].searchoptions.dataUrl && !cols[i].searchoptions.value) {
cols[i].searchoptions.value = cols[i].searchoptions.buildSelect(null);
}

此代码以前在4.3版本(4.3.1之前的一个版本)中工作正常 不知道导致问题的原因,但现在我的下拉列表显示为空白。 任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:2)

您没有发布您使用的buildSelect代码,因此很难说代码失败的原因。我最不理解的是为什么你有这么复杂的代码。如果您知道列IsActive具有类型布尔值,并且您希望在“高级搜索”对话框中将其显示为具有“是”和“否”值的下拉列表并将其显示在网格中,并且在编辑期间作为复选框可以执行以下内容:

{ name: "IsActive", template: myCheckboxTemplate }

您定义的mytemplateCheckbox类似

var myCheckboxTemplate = {
        formatter: "checkbox", align: "center", width: 20,
        edittype: "checkbox", editoptions: { value: "1:0" },
        stype: "select", searchoptions: { sopt: ["eq", "ne"], value: "1:Yes;0:No" }
    };

我永久使用的描述方法,它运作良好。与上面代码的唯一区别是我使用"clickableCheckbox"格式化程序而不是“复选框”。如果您愿意,可以从here下载。