Я пытаюсь обновить ячейку в jqgrid навсегда после загрузки. Я знаю, что могу использовать setCell
, но это только обновляет значение для этой страницы. Если я вернусь на страницу, если я не выполняю явное выполнение другого setCell
для ячейки, отображается старое значение. Я также попробовал setRowData, но, похоже, он делает то же самое. Я использую loadonce
, так как мой подход заключается в 1) загрузка данных. 2) изменение нескольких значений данных на основе некоторых критериев. 3) отображение измененных значений. Как я использую loadonce
, не должно быть способа постоянно изменять ячейку в этом сеансе?
UPDATE:
Вводя мой код, который не дает ошибку, но не выполняет итерацию по всем данным:
var set = 0;
....
gridComplete: function(data){
setData();
},
....
beforeRefresh: function(data){
set = 0;
},
....
function setData(){
if(set == 1) return;
... //create hash up here
var dataArray = jQuery("#grid").jqGrid('getGridParam', 'data');
var j = 1;
for (var rows in dataArray) {
var key = dataArray[rows].name;
dataArray[rows].level = hashTable[key];
j++;
}
alert(j);
}
Это не циклическое перемещение по всем элементам массива, которые локально загружаются. Например, если размер страницы равен 30, alert(j)
возвращает 30, несмотря на то, сколько мест я загрузил локально. Однако, если я обновляю график, j является правильным числом. Почему поведение getGridParam отличается в каждом случае?