我有一个带有multiselect和multiPageSelection的jqgrid。我的用户可以在ajax页面调用之间的不同页面上选择不同的行。我向寻呼机添加了自定义按钮和方法,以清除选定的行,而与页面无关:
$("#grid").navButtonAdd('#pager', {
caption: "Clear",
title: "Clear Selection",
buttonicon: "ui-icon-circle-close",
onClickButton: function() {
$("#grid").setGridParam({ multiPageSelection: false });
$("#grid").resetSelection();
$("#grid").setGridParam({ multiPageSelection: true});
},
position: "first"
});
您可以看到我必须将multiPageSelection设置为false,重置选择,然后将multiPageSelection设置为true才能完成这项工作。
我尝试了
$("#grid").resetSelection();
,然后是以下之一:
$("#grid").setGridParam({ selarrrow: ""});
$("#grid").setGridParam({ selarrrow: []});
$("#grid").setGridParam({ selarrrow: {}});
$("#grid").setGridParam({ selarrrow: null});
他们都没有工作。他们要么生成错误,要么命令被忽略,并且selarrrow仍然包含值。
resetSelection仅在multiPageSelection为true时清除当前页面上的值。
是否有jqgrid命令来重置选择,而与multiPageSelect无关?
答案 0 :(得分:1)
如果我正确理解了您的问题,那么您只是使用错误的方式来重置数组参数selarrrow
(或其他参数,例如data
)。最简单的方法是使用getGridParam
而不是setGridParam
。调用getGridParam
不一个附加参数将返回引用到jqGrid的所有内部参数,您将很容易替换任何数组参数:
var $grid = $("#grid"), p = $grid.jqGrid("getGridParam"});
p.selarrrow = [];
或者您可以使用
$("#grid").jqGrid("setGridParam", { selarrrow: [] }, true);
,带有第二个参数true
。最后一种方法更具可读性,但是setGridParam
的任何用法都比getGridParam
的用法慢。