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

jqGrid高级搜索对话框-具有下拉选择的列,jqgrid,Jqgrid,我有一个带有高级过滤器的jqGrid 4.3.1。有些列是布尔类型,比如Yes/No类型,当创建新的高级过滤器行时,当选择列类型时,我会显示一个下拉列表。 例如,假设第2列是IsActive(布尔)类型,当选择此选项时,我会显示一个下拉列表,而不是文本框。 覆盖jqGrid高级过滤器的代码如下: var cols = grid.jqGrid("getGridParam", "colModel"); for (var i = 0; i < cols.length; i++) { if (co

我有一个带有高级过滤器的jqGrid 4.3.1。有些列是布尔类型,比如Yes/No类型,当创建新的高级过滤器行时,当选择列类型时,我会显示一个下拉列表。 例如,假设第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);
}
var cols=grid.jqGrid(“getGridParam”、“colModel”); 对于(变量i=0;i 此代码在4.3版本(4.3.1之前的一个版本)中正常工作 不知道是什么导致了问题,但现在我的下拉列表显示为空白。
感谢您的帮助!

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

{name:“IsActive”,模板:myCheckboxTemplate}
其中
mytemplateCheckbox
您定义了like

var myCheckboxTemplate={
格式化程序:“复选框”,对齐:“中心”,宽度:20,
edittype:“复选框”,editoptions:{value:“1:0”},
stype:“选择”,搜索选项:{sopt:[“eq”,“ne”],值:“1:是;0:否”}
};

所描述的方法我一直在使用,而且效果很好。与上面代码的唯一区别是我使用格式化程序而不是“复选框”。如果您愿意,您可以从下载。

谢谢您的回答。我添加了一个新问题,这是我一直在努力解决的问题。.我的build select函数映射到一个函数,该函数具有以下实现返回:All;true:true;false:false”;@chugh97:从服务器获取静态数据(从URL
dataUrl
)的意义然后用静态值将其转换为select?此外,
buildSelect
必须生成HTML片段
TrueFalse
,而不是像
“:All;true:true;false:false”这样的字符串
用作
value
属性的值。搜索对话框中
:All;
的用法也不好。所有这些看起来都很奇怪。。。