3

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

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

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

请指教。

4

1 回答 1

2

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

前任。

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

要使用全选/无复选框,您可以使用onSelectAll事件。

参数:aRowids,状态

当多选选项为真并且您单击标题复选框时会触发此事件。

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

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

请注意,选中或取消选中标题复选框时,aRowids 始终包含 id。

前任。

onSelectAll: function(aRowids,status) {
     if (status) {
          $.each(aRowids, function(i, rowid) {
               $('#jqg_grid_' + rowid).attr("disabled", "disabled");
          });
     }
},
于 2013-02-05T14:21:55.360 回答