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/jqxinput/jquery-input-api.htm