Я пытаюсь постоянно обновить ячейку в jqgrid после загрузки. Я знаю, что могу использовать setCell
, но это обновляет только значение для этой страницы. Если я вернусь на страницу, если я явно не выполняю еще один setCell
для ячейки, отображается старое значение. Я также пробовал setRowData, но, похоже, он делает то же самое. Я использую loadonce
, поскольку мой подход состоит в том, чтобы 1) загрузить данные 2) изменить несколько значений данных на основе некоторых критериев 3) показать измененные значения. Поскольку я использую loadonce
, не должен ли быть способ навсегда изменить ячейку в этом сеансе?
ОБНОВЛЕНИЕ:
Ввод моего кода, который не выдает ошибку, но не может перебирать все данные:
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, предупреждение (j)
вернет 30, несмотря на то, сколько элементов я загрузил локально. Однако, если я обновлю график, j будет правильным числом. Почему поведение getGridParam в каждом случае разное?