为什么更新的值没有在jqgrid中发布

时间:2013-03-20 10:19:37

标签: jquery ajax jqgrid struts2 struts2-jquery

我正在使用struts2-jqgrid-plugin实现jqgrid。我的问题是当我在form-element中更改隐藏字段的值时,当我用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检查),这在页面上不存在。如何解决这个问题呢。有关详细信息,请参阅此帖issue with ajax call on paging in jqgrid

1 个答案:

答案 0 :(得分:0)

好吧,我想我明白了(我不做struts)。构建jqGrid时将设置该值,并且在重新加载时需要更新它,因为它看到初始化jqGrid时设置的值。

编辑: 通过以下方式更改隐藏字段后尝试重置网格参数:

$('#gridName').jqGrid('setGridParam', { formIds: 'adminFrm').trigger('reloadGrid', [{ page: 1}]);