У меня есть страница Struts2 jqGrid, которая загружается нормально. При нажатии кнопки обновления навигатора я хочу, чтобы он перезагрузил сетку с сервера.
<sjg:grid
altRows="false"
id="gridtable"
dataType="json"
editurl="%{editurl}"
filter="true"
filterOptions="{stringResult:true}"
gridModel="gridModel"
gridview="true"
height="600"
href="%{remoteurl}"
loadonce="true"
navigator="true"
navigatorAdd="%{editPermission}"
navigatorAddOptions="{
closeAfterAdd:false,
closeOnEscape:true,
reloadAfterSubmit:true,
addCaption:'Add Record'}"
navigatorDelete="false"
navigatorEdit="%{editPermission}"
navigatorEditOptions="{
closeAfterEdit:false,
closeOnEscape:true,
afterSubmit:function(response, postdata) {
return isError(response.responseText);
}
}"
navigatorRefresh="true"
navigatorSearch="false"
onCompleteTopics="loadComplete"
onSelectRowTopics="rowselect"
onEditInlineBeforeTopics="beforeFormLoad"
pager="true"
pagerButtons="true"
rowList="25,50,100"
rowNum="25"
rownumbers="true"
>
У меня есть следующая привязка, чтобы установить тип данных в json при нажатии кнопки обновления.
$("#refresh_gridtable").bind("click", function(){
$("#gridtable").jqGrid("setGridParam", {datatype: 'json'});
return [true];
});
Однако, когда я нажимаю кнопку обновления, он перезагружает данные с сервера только при каждом втором нажатии. Если я выполняю сортировку на стороне клиента для определенного столбца, а затем нажимаю «Обновить», он не будет перезагружаться с сервера при первом щелчке, второй щелчок будет обновляться с сервера без сортировки (значки сортировки все еще видны в этот момент вверху столбца), то третий щелчок не затронет сервер, но применит сортировку.
Как заставить обновление перезагружаться с сервера каждый раз, а затем применять любые существующие поля сортировки/фильтрации?