即使beforeSelectRow返回false,也可以选择jqgrid复选框

时间:2013-02-05 12:13:58

标签: javascript jquery jqgrid

在启用了多选的jqgrid中,即使beforeSelectRow返回false,该复选框仍然是可检查的。这是一个错误,如果是这样,有一个解决方法。

$("#grid").jqGrid({
    beforeSelectRow: function(rowid, e) {
        return false;
    }

这里的用例: http://jsfiddle.net/erduT/1/ http://jsfiddle.net/erduT/2/

请建议。

1 个答案:

答案 0 :(得分:2)

这不完全是一个错误,在这种情况下,在选择之前禁止选择,而不是选中复选框。这一点在您的小提琴中很明显,因为行本身不会突出显示。因此,在您的beforeSelectRow函数中,您将不得不自己禁用任何其他UI元素。

实施例

beforeSelectRow: function(rowid, e) {
    $('#jqg_grid_' + rowid).attr("disabled", "disabled");
    return false;
},

使用Select All / None复选框可以使用 onSelectAll 事件。

  

Params:aRowids,status

     

当多选项选项为时,此事件将触发   单击true并单击标题复选框。

     

aRowids - 所选行(rowid)的数组。

     

status - 确定标题状态的布尔变量复选框 - 如果选中则为true,否则为false。

     

请注意,当选中或取消选中标题复选框时,aRowids总是包含ID。

实施例

onSelectAll: function(aRowids,status) {
     if (status) {
          $.each(aRowids, function(i, rowid) {
               $('#jqg_grid_' + rowid).attr("disabled", "disabled");
          });
     }
},