struts2-jqgrid-plugin を使用して jqgrid を実装しています。私の問題は、フォーム要素の非表示フィールドの値を変更すると、jqgrid でこれらの非表示フィールドを投稿しても、更新された値が反映されないことです。
jqgrid を使用した私のフォーム
<form name="adminFrm" id="adminFrm">
<div>
<s:url var="remoteurl" action="adminJsontable">
</s:url>
<sjg:grid
id="gridtable"
caption="Issue-Summary"
dataType="json"
href="%{remoteurl}"
pager="true"
gridModel="finalGridModel"
rowList="10,20,25,30"
rowNum="10"
rownumbers="true"
width="1250"
loadingText="Dashboard is being Loaded..."
formIds="adminFrm" // here I am sending all form-elements
gridview="true"
>
<sjg:gridColumn name="issue_id" id="issueId" index="id" title="Issue-ID" formatter="integer" formatoptions="{thousandsSeparator: ''}" sortable="false" width="100"/>
<sjg:gridColumn name="issue_status" index="issue_status" title="Current Status" search="true" searchoptions="{value:':Any;Completed:Completed;Assigned:Assigned;Denied:Denied'}" searchtype="select"/>
</sjg:grid>
</div>
<s:hidden name="hidden_field" id="hidden_field" value="123456"></s:hidden>
</form>
ここで、いくつかのイベントで隠しフィールドの値を更新しようとしています
function x()
{
$("#hidden_field").val("Value changed");
}
しかし、jqgridがリロードすると、非表示フィールドの以前の値、つまり更新された値の代わりに 12345 がポストされます。firebug を使用して非表示フィールドをチェックしました。これは、非表示フィールドの値が変更されたことも示しています。なぜ jqgrid は、ページに存在しない以前の値をサーバー (firebug を介してチェックした) に投稿しているのかを示しています。この問題を解決する方法。詳細については、jqgrid のページングでの ajax 呼び出しに関するこの投稿の問題を参照できます