正常にロードされる 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];
});
ただし、更新ボタンをクリックすると、1 回おきにサーバーからデータがリロードされるだけです。特定の列でクライアント側の並べ替えを実行し、[更新] をクリックすると、最初のクリックではサーバーからリロードされず、2 回目のクリックでは並べ替えなしでサーバーから更新されます (この時点では、並べ替えアイコンはまだ上部に表示されています)。列の)、3 回目のクリックはサーバーにヒットしませんが、並べ替えが適用されます。
毎回サーバーから更新をリロードしてから、既存の並べ替え/フィルター フィールドを適用するにはどうすればよいですか?