Я инициализация сетки, как так:jqgrid viewGridRow() не обновляют все поля на изменении строки
$("#mainGrid").jqGrid({
url : g_MainGridUrl,
datatype : 'json',
height : 460,
autowidth : true,
colNames : g_ColNames,
colModel : g_ColModel,
pager : '#pager',
rowNum : 100,
rowList : [100, 200, 300],
sortname : g_DefaultSort,
sortorder : 'desc',
sortable: true,
viewrecords : true,
caption : 'Results',
hidegrid : false,
rownumbers : true,
jsonReader : {
root : "ROWS",
page : "PAGE",
total : "TOTAL",
records : "RECORDS",
cell : "",
id : g_DefaultSort
},
loadComplete: function(){
var num_records = $('#mainGrid').getGridParam('records');
$('#gview_mainGrid div.ui-jqgrid-titlebar span').html('Results: '+num_records);
},
loadBeforeSend : function(thisXhr) {
xhr = thisXhr;
},
ondblClickRow: function(rowid) {
jQuery(this).jqGrid('viewGridRow', rowid, { width: "500"});
}
});
$("#mainGrid").jqGrid('navGrid', '#pager', {
del : false,
add : false,
edit : false,
refresh:false,
search: false,
view: true
});
$("#mainGrid").jqGrid('navButtonAdd','#pager',{
caption: "Columns",
title: "Reorder Columns",
onClickButton : function(){
$("#mainGrid").jqGrid("columnChooser", {
done: function() {
resize_the_grid();
},
height: 320
});
}
});
и призывающие сетки, как это так, после построения фильтра объекта:
$('#mainGrid').setGridParam({
url : g_MainGridUrl + Ext.util.JSON.encode(filter)
});
$('#mainGrid').trigger("reloadGrid");
Поскольку объект указывает, когда я дважды щелкаю по строке для просмотра своей записи, а затем изменяю строки из модального диалога, не все столбцы обновляются, а некоторые - и не другие. Я думал, что это может быть потому, что у меня не было < th> s, определенных для таблицы, поэтому я попытался добавить их. Я загрузил самую последнюю версию (4.2.0). Ошибок нет. Это верно в IE8, Chrome, Safari. Есть идеи?
ОБНОВЛЕНИЕ: Я думаю, что нашел причину, но до сих пор не имеет решения. Кажется, что любой столбец, имеющий заголовок с пробелом в названии, не может правильно прочитать сетку. Я подтвердил добавлением подчеркиваний, чтобы заменить пробелы в заголовках, и обнаружил, что для каждого исправленного столбца его значения начали обновляться. Я регистрирую отчет об ошибке в Триранде.
UPDATE 2: Кажется, там уже было сообщение об ошибке подало: trirand forum - однако, автор не считает это ошибкой, а скорее ожидает, разработчики не использовать заголовки столбцов с пробелами, а jqgrid строит идентификаторы, основанные на имена в модели столбцов. Я попросил изменить это поведение, но ожидаю, что мне придется копаться в его коде, чтобы он работал.