我正在尝试使用数据库存储和加载搜索模板。这样做时,我无法更改 tmplLabel、tmplNames、tmplFilters 的值。我正在调用 loadTemplates() 函数,该函数转到服务器以获取数据并存储在 3 个变量中。此函数在 loadComplete() 处被调用。请让我知道如何重置模板的值。我说的是http://www.trirand.com/blog/jqgrid/jqgrid.html
问问题
1078 次
1 回答
0
搜索模板是一个不常用的有趣功能。要使用它,应该使用tmplNames
和tmplFilters
(可选tmplLabel
)这是搜索模块的参数。如果您recreateFilter: true
另外使用选项很重要。所以你可以设置选项
var mySearchOptions = {
// it's just some options which you use
multipleSearch: true,
multipleGroup: true,
recreateFilter: true,
closeOnEscape: true,
closeAfterSearch: true,
overlay: 0
},
$grid = $("#grid");
$grid.jqGrid({
// ... your jqGrid options
loadComplete: function (data) {
// you should modify the next line correspond to the place of
// tmplNames and tmplFilters in the server response
if (data.tmplNames && data.tmplFilters) {
mySearchOptions.tmplNames = data.tmplNames;
mySearchOptions.tmplFilters = data.tmplFilters;
}
}
});
$grid.jqGrid('navGrid', {/*navGrid option*/}, {/*Edit options*/}, {/*Add options*/},
{/*Del options*/},
mySearchOptions);
我想你已经有正确的代码,但你不使用recreateFilter: true
选项。因此,将显示先前打开的搜索对话框,而不是使用当前选项重新创建对话框。
PS 我建议您另外刷新 jqGrid 4.3.2 的源代码(参见答案)。您将拥有更好的键盘支持,可以在搜索对话框中使用searchOnEnter
和closeOnEscape
选项、afterChange
回调和自定义控件(参见答案)。
于 2012-04-24T21:54:10.237 回答