【问题标题】:why updated values are not getting post in jqgrid为什么更新的值没有在 jqgrid 中发布
【发布时间】:2013-03-20 10:19:36
【问题描述】:

我正在使用 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 检查)。如何解决这个问题呢。详情可以参考这个帖子issue with ajax call on paging in jqgrid

【问题讨论】:

  • 你看到隐藏值被发布到服务器了吗?
  • hidden_field 在电网负载时设置在哪里?
  • @Mark 是的,这个 hidden_​​field 正在通过服务器发布,我已经检查了我的控制台以及 firebug,其中 hidden_​​field 正在更新,但是当 jqgrid 重新加载时,它会发布旧值。
  • 你在哪里使用 jqGrid 传递数据?用户数据?
  • @Mark 我正在使用标签“formids”发送 hidden_​​field(检查我的网格),它在重新加载或调用操作时将所有表单元素与 url 连接起来。

标签: jquery ajax jqgrid struts2 struts2-jquery


【解决方案1】:

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

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

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

【讨论】:

  • 您是否有理由使用此formIds 方法而不是通过postData 在帖子中传递额外数据?
  • 隐藏字段编辑后重置网格formIds属性,它可能会选择新值。
  • 这背后的原因是,不知何故我无法使用 postData,你可以说它对我使用 struts2-jqgrid 的限制,或者我不知道 jqgrid 的基础知识,这就是我使用的原因这形成了。
  • 好吧,我如何使用 jquery 或 javascript 重置 formIds 属性。
  • 好吧,我通读了 Oleg 发布的帖子,但我会感到震惊的是,postData 的功能对于不同风格的 jqGrid 是不同的。需要说明的是,您使用的是 jqGrid 的付费服务器端版本,而不是 jqGrid 的 javascript/jQuery 扩展?
猜你喜欢
  • 2013-01-24
  • 1970-01-01
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
  • 2016-02-24
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
相关资源
最近更新 更多