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 は、チェックボックスの選択ではなく、の選択を無効にしています。行自体が強調表示されたままにならないため、これはフィドルで明らかです。したがって、beforeSelectRow 関数では、他の UI 要素を自分で無効にする必要があります。

元。

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

Select All/None チェックボックスを操作するには、onSelectAllイベントを使用できます。

パラメータ: aRowids、ステータス

このイベントは、複数選択オプションが true で、ヘッダーのチェックボックスをクリックすると発生します。

aRowids - 選択された行 (ROWID) の配列。

status - ヘッダーのステータスを決定するブール変数 チェック ボックス - チェックされている場合は true、チェックされていない場合は false。

ヘッダーのチェックボックスがオンまたはオフの場合、aRowid には常に ID が含まれることに注意してください。

元。

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