网站正能量视频不懂我意思吧/每日重大军事新闻
这是一个很好的问题! jqGrid包含可用于实现您的需求的选项列,但该选项的使用并不简单.所以我为你做了演示.
没有记录The option列搜索对话框,因为它不是真正用户友好的.选项列可以包含colModel项的数组.确切地说,相同顺序的项目将用于构造具有列名称的下拉选择.默认情况下,jqGrid填充列包含colModel的所有项目,这些项目没有search:false属性.对于隐藏列(隐藏:true),它将另外测试searchoptions.searchhidden属性(参见源代码的the part).因此,默认情况下,选项列将在内部填充.另一方面,可以覆盖选项列以具有搜索字段的自定义顺序.
您在问题文本中包含的代码生成了以下搜索对话框
填充选项列后,您可以将其更改为例如以下内容
相应的演示是here.代码中最重要的部分如下
var $grid = $('#tableid'),
getColumnByName = function (colName) {
var colModel = $.extend([], this.jqGrid("getGridParam", "colModel")),
colNames = $.extend([], this.jqGrid("getGridParam", "colNames")),
l = colModel.length, i, cm;
for (i = 0; i < l; i++) {
cm = colModel[i];
if (cm.name === colName) {
cm.label = cm.label || colNames[i];
return cm;
}
}
};
$grid.jqGrid({
colNames: ['ID', 'Membership#', 'Join Date', 'Email', 'Name', 'Address', 'Postcode'],
colModel: [
{name: 'ID', hidden: true },
{name: 'MEMID', width: 90 },
{name: 'JOINDATE', width: 70 },
{name: 'EMAIL', width: 150, align: "right" },
{name: 'NAME', width: 120, align: "right" },
{name: 'ADDRESS', width: 250, align: "right" },
{name: 'POSTCODE', width: 80, align: "right" }
],
...
});
$grid.jqGrid('navGrid', '#pager',
{ /* parameters */
edit:false, add:false, del:false, searchtext:'Find ', refreshtext:'Refresh '
},
{ /* edit options */ },
{ /* add options */ },
{ /* delete options */ },
{ /* search options */
...
columns: [
getColumnByName.call($grid, 'NAME'),
getColumnByName.call($grid, 'EMAIL'),
getColumnByName.call($grid, 'JOINDATE'),
getColumnByName.call($grid, 'MEMID'),
getColumnByName.call($grid, 'ADDRESS'),
getColumnByName.call($grid, 'POSTCODE')
]
},
{ /* view options */ }
);
更新:单值搜索中存在小错误(multipleSearch:true未设置)和列设置选项.在the answer中,我描述了如何修复错误.或者,您可以使用multipleSearch:true选项并在postData中指定具有默认搜索规则的过滤器(请参阅相同的答案).