我们最近将jqgrid从3.8.2更新到4.3.1,因为我们希望能够使用搜索模板,并确保我们有所有可用的错误修复。但是,有两件事情已经发生了变化,我希望看到我是否可以使新版本的行为与以前的版本相同。
我们使用高级搜索,并将我们的网站配置为始终在网格上方显示固定的搜索对话框。
答案 0 :(得分:4)
您一起发布了两个单独的问题。其他用户很难找到这些信息。最好将当前问题分成两部分。
尽管如此,关于问题的第一部分,我只想描述旧搜索对话框的行为是因为使用了jQuery.clone。该功能有很多错误,很长一段时间没有修复。所以搜索对话在某些情况下工作错误。在搜索对话框的新实现中,没有明确地使用jQuery.clone作为解决问题的唯一安全方法。您在新版“搜索对话框”中遗漏的行为默认为 。在新的搜索对话框中,相应的代码不存在,但您可以自己编写。大多数情况下,您需要在afterRedraw回调中编写自定义代码。
您应该考虑到jqGrid现在支持强大的multipleGroup: true
选项。所以你需要的是从同一组的另一个控件复制选择:
关于你的第二个问题:
The answer包含the demo,其中描述了取消绑定click
的想法。可能更好的事情是取消绑定或隐藏“删除规则”按钮,只有它是唯一的按钮。
如果您不使用multipleGroup: true
选项,可以尝试以下
$.extend($.jgrid.search, {
multipleSearch: true,
overlay: 0,
afterRedraw: function () {
// don't permit to remove the last rule
$('input.delete-rule:first',this).unbind('click').hide();
}
});
如果使用multipleGroup: true
,则可能更好的是另一个代码
$.extend($.jgrid.search, {
multipleSearch: true,
multipleGroup: true,
overlay: 0,
afterRedraw: function () {
// don't permit to remove the last rule
var $delRules = $('input.delete-rule', this);
if ($delRules.length === 1) {
$delRules.unbind('click').hide();
}
}
});