jqxGrid: отменить привязку / привязку к значению ячейки

Мне нужно изменить все ячейки в столбце 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".

Что является более элегантным способом сделать это? Я думал снять привязку "Oncellvalue Изменено" перед циклом и связать его обратно в конце, но не уверен, как это сделать.

Спасибо

1 ответ

Решение

Вместо вызова 'setcellvalue' для каждой ячейки, которую вы хотите отредактировать, может быть быстрее редактировать значения непосредственно в dataAdapter. Вы можете сделать это, обратившись к параметру records в dataAdapter.

Затем вам нужно будет заставить ваш jqxGrid обновлять данные. Вы можете сделать это, вызвав 'render' или 'refresh'.

Смотрите эти ссылки для получения дополнительной информации:

http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxdataadapter/jquery-data-adapter.htm

http://www.jqwidgets.com/jquery-widgets-documentation/documentation/jqxinput/jquery-input-api.htm

Другие вопросы по тегам