在我的Struts2 2/Java应用程序中,我允许用户从JQGrid向应用程序发送数据。我使用"saverow“函数循环遍历每一行并提交已编辑的单元格。此函数位于一个单独的js文件中,该文件包含在我的JSP中。
function editRows(){
for (...){
...
...
...
jQuery('#myGrid').jqGrid('saveRow,rowID,false,null,null,aftersavefunc);
}
getResponse();
}在从此函数提交数据后,将更新我的action类中的一些类变量。我使用aftersavefunc设置隐藏的jqgrid单元格(jqgrid 'setCell')的值,以便以后可以从网格中回忆它们。
我有额外的值,这些值简单地显示在div中。这些值在应用程序执行后也会更新。在执行上面提到的editRows()函数时,下面的div已经可见,并显示div中每个字段的值。这些初始div值是之前提交的表单的结果。下面是div在我的JSP中的样子。
<div id="headerBar">
<table>
<tr>
<td>Total Items: <s:property value="strutsActionName.totalItems</td>
...
...
...
</tr>
</table>
</div>例如,当我的函数editRows被执行时,div已经在网页上显示了"totalItems“的值。它看起来就像这样:
Total Items: 5函数editRows执行后,"totalItems“的值在应用程序中被更新。java操作类具有totalRows的最新值。
当循环完成后,editRows函数正在调用另一个函数getResponse()。getResponse函数用于获取我使用"saverow“的"aftersavefunc”参数设置的隐藏jqgrid值。它使用jqGrid('getCell')获取那些隐藏的jqGrid单元的更新值。
我希望getResponse()函数也刷新"totalItems“的值。此值不在jqGrid中。我需要刷新单个字段并获得更新的值。例如,在完成editRows()之后,"totalItems“的值可以从5增加一倍,达到10。
在我的getResponse()函数中,我尝试使用以下方法更新这个值,但是它没有起作用。
document.getElementById('headerBar').reload我只需要更新这个div中的值,而不提交表单。
发布于 2014-02-09 00:46:21
属性标记是在服务器端处理的,因此在将请求发送到服务器之前不会更新。
在我看来,最好的方法是将属性值放入id为span或p的元素中,然后使用document.getElemenrById检索该元素,并在检索其新值后从javascript中更改其内容。
https://stackoverflow.com/questions/21653453
复制相似问题