0

その列の単一のセルを編集するときに、jqxgrid 列のすべてのセルを変更する必要があります。したがって、「cellvaluechanged」イベントですべてのセルをループします。

var ri = -1;
$("#jqxGrid").on('cellvaluechanged', function (event) {
    if(ri != -1) return;
    var column = args.datafield;
    if(column == 'min'){
        var row = args.rowindex;
        if(ri == -1)ri = row;
            var griddata = $("#jqxGrid").jqxGrid('getdatainformation');
            var v = args.value;         
            for (var i = 0; i < griddata.rowscount; i++) {
                if(i != row){
                    $("#jqxGrid").jqxGrid('setcellvalue', i, 'min', v);
                }   
            }           
        ri = -1;            
    }
});

問題は、ループ内のセルを変更するたびに「oncellvaluechanged」関数が再度呼び出されるため、大きなテーブルでは遅すぎることです。

これを行うためのよりエレガントな方法は何ですか? ループの前に「oncellvaluechanged」のバインドを解除し、最後にバインドすることを考えていましたが、その方法がわかりません。

ありがとう

4

1 に答える 1