我有许多列的jqGrid表。在网格中搜索使用过滤器工具栏。对于大多数人来说,搜索只是简单的默认操作符。对于一个日期时间列,我想要不同类型的运算符和datepicker选择器。 我已经添加了dataInit
datepicker初始化为searchoptions
,必要的操作符为searchoptions.sopt
。为了显示这个操作符,我将searchOperators设置为true。所以对于这一列,一切都很好。我有运营商选择器弹出式日期选择器。但是对于所有其他列,默认操作员图标显示在其左侧。这是令人讨厌的,因为运营商是默认的,用户无法改变它。那么是否有可能使用jqGrid API来隐藏它们?至于我能看到我可以隐藏这只是用我的自定义代码:jqGrid过滤器工具栏显示搜索运算符选择器仅用于单列
我需要检查我的列模型和渲染网格后(可能是loadComplete
)对于具有空sopt
或sopt.length == 0
删除操作的所有列选择。或者添加隐藏它的CSS类。不确定哪些解决方案更好(隐藏或删除),因为删除可能会破坏某些逻辑,并且隐藏可能会影响宽度计算。这里是我的意思上fiddle
function fixSearchOperators()
{
var columns = jQuery("#grid").jqGrid ('getGridParam', 'colModel');
var gridContainer = $("#grid").parents(".ui-jqgrid");
var filterToolbar = $("tr.ui-search-toolbar", gridContainer);
filterToolbar.find("th").each(function()
{
var index = $(this).index();
if(!(columns[index].searchoptions &&
columns[index].searchoptions.sopt &&
columns[index].searchoptions.sopt.length>1))
{
$(this).find(".ui-search-oper").hide();
}
});
}
没有任何人有一些更好的想法样?