0

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 呼び出しに関するこの投稿の問題を参照できます

4

1 に答える 1

0

わかりました、私は理解していると思います(ストラットはしません)。jqGrid が構築されたときに値が設定され、jqGrid が初期化されたときに設定された値が表示されるため、リロードするときに値を更新する必要があります。

編集:非表示フィールドが次のように変更された後、グリッドパラメータをリセットしてみてください:

$('#gridName').jqGrid('setGridParam', { formIds: 'adminFrm').trigger('reloadGrid', [{ page: 1}]);
于 2013-03-20T10:51:35.340 に答える