我正在使用带有filterToolbar
的jqGrid 4.2,效果很好。我想在查询(服务器端)字段中添加某种类型的自定义搜索,这些字段不属于colModel
。
在4.0之前,我会使用filterGrid
这一行:
$('#keyword').jqGrid('filterGrid', '#ticket-grid',
{
gridModel: false,
filterModel: [
{ label: 'Keyword', name: 'keyword', stype: 'text'},
{ label: 'Inclued Closed?',name : 'includeClosed', stype: 'checkbox'}
]
});
我知道不再支持此功能,stype: 'checkbox'
无论如何都无效。
如何使用新的搜索模块/机制执行此操作?
答案 0 :(得分:2)
如果我理解你是正确的,你已经在页面上,例如网格上方,一些控件(文本输入,选择,chechbox),允许用户定义用户想要在网格中看到的结果的其他标准。在这种情况下,您可以the old answer中描述的方式使用postData
方法(函数)。
如果有任何类型的网格刷新:请求过滤来自searching toolbar的数据,更改页面或页面大小,更改排序等将始终遵循对服务器的Ajax请求。如果jqGrid的postData
选项的属性将像其他标准参数(sidx
,sord
,page
,...)一样添加。如果将postData
的属性中的一个定义为函数(如果是postData
的方法),则将调用该函数以构造将发送到服务器的参数。因此,您自定义搜索控件(文本输入,选择,chechbox)的当前信息将发送到服务器。这样您只需要使用后端的参数来过滤结果。
所以你必须自己定义字段。例如,输入id =“keyword-input”的文本和带有id =“includeClosed”的checkbos,然后使用postData
来形成以下形式:
$('#keyword').jqGrid(
// ... other jqGrid options
postData: {
keyword: function () { return $('#keyword-input').val(); },
includeClosed: function () { return $('#includeClosed')is(':checked'); },
}
});