我需要在搜索弹出窗口中隐藏操作符,但我无法使其工作。 我试过这个,但两个运营商仍然出现:
jQuery("#grilla").navGrid("#paginador",
{del:false,add:false,edit:false},{},{},{},{
groupOps: [{ op: "OR", text: "any" }], multipleSearch:true});
有什么想法吗? 谢谢!
答案 0 :(得分:5)
没有可以直接做你需要的选项。此外,如果您在对话框初始化(例如beforeShowSearch事件处理程序内部)中使用$('select.opsel').hide()
隐藏搜索对话框中的ADD / OR操作数,则select元素将仅在开头隐藏 即可。用户单击任何按钮后,对话框包含将重新绘制而不调用任何事件处理程序,并且select元素将再次可见。
所以我建议通过覆盖过滤器对话框的方法reDraw来解决问题。执行此操作的代码可能类似于
jQuery("#grilla").jqGrid("navGrid","#paginador",
{del: false, add: false, edit: false}, {}, {}, {},
{
multipleSearch: true,
beforeShowSearch: function($form) {
var searchDialog = $form[0],
oldrReDraw = searchDialog.reDraw, // save the original reDraw method
doWhatWeNeed = function () {
// hide the AND/OR operation selection
$('select.opsel', searchDialog).hide();
setTimeout(function () {
// set fucus in the last input field
$('input[type="text"]:last', searchDialog).focus();
}, 50);
}
searchDialog.reDraw = function () {
oldrReDraw.call(searchDialog); // call the original reDraw method
doWhatWeNeed();
}
doWhatWeNeed();
}
}
);
您可以在the demo上看到真正有效的方式。
更新:写完答案后,我向trirand发布了一些改进jqGrid的建议。现在jqGrid有许多简化上述工作的功能。例如,存在可以直接使用的afterRedraw
回调。所以答案中的代码看起来像
grid.jqGrid("navGrid", "#pager",
{add: false, edit: false, del: false}, {}, {}, {},
{
multipleSearch: true,
afterRedraw: function (p) {
var $form = $(this);
$form.find("select.opsel").hide();
setTimeout(function () {
// set fucus in the last input field
$form.find('input[type="text"]:last').focus();
}, 50);
$form.find("input.add-rule,input.delete-rule").button();
}
}
);
请参阅修改过的演示here:
我在afterRedraw
$form.find("input.add-rule,input.delete-rule").button();
仅改善搜索对话框中按钮的外观。我建议在jqGrid中进行默认设置,但trirand不接受这个设置。无论如何,包含jQuery UI的每个人都可以在afterRedraw
中添加这样的行以使按钮变平。
答案 1 :(得分:1)
4.4.0接受的答案对我不起作用。
更简单的似乎是挂钩afterRedraw事件并删除opsel select元素:
jQuery("#grilla")jqGrid(
"navGrid","#paginador", {del:false,add:false,edit:false},{},{},{},
{
multipleSearch:true,
afterRedraw: function($p) {
$("select.opsel").remove();
}
}
);
答案 2 :(得分:1)
看到这里!
//own add edit del search
jQuery("#gridTable3").jqGrid('navGrid', '#gridPager3',
{
//options
},
{
// edit options
height: 250,
reloadAfterSubmit: false,
closeAfterEdit: true,
afterSubmit: function(r, data) {
var messageString = r.responseText;
var mesObj = eval('(' + messageString + ')');
return [mesObj.state, mesObj.message];
}
},
{
// add options
height: 250,
reloadAfterSubmit: false,
closeAfterAdd: true,
afterSubmit: function(r, data) {
var messageString = r.responseText;
var mesObj = eval('(' + messageString + ')');
return [mesObj.state, mesObj.message];
}
},
{
// del options
reloadAfterSubmit: false,
closeAfterDel: true,
afterSubmit: function(r, data) {
var messageString = r.responseText;
var mesObj = eval('(' + messageString + ')');
return [mesObj.state, mesObj.message];
}
},
{
// search options
multipleSearch: true,//more search write there,don't pop
afterSubmit: function(r, data) {
var messageString = r.responseText;
var mesObj = eval('(' + messageString + ')');
return [mesObj.state, mesObj.message];
}
});