从数据库中查询出了多条记录,以List返回给客户端,jsp页面中用<s:iterator/>遍历List,<s:property value" />显示记录,每条记录后面有个“编辑”功能,点“编辑”后,弹出一个层,可以修改内容,修改后是以Ajax提交(也必须以Ajax提交),我希望修改成功后,刚刚被点击“编辑”的那条记录,被修改的部分,可以用JS修改它们的值,用户可以看得出内容已经修改过了,请教各位?

解决方案 »

  1.   

    再去查一下数据库,也可以实现页面上的记录刷新的效果,但是,我不希望再去查一次数据库,能修改后台返回的List,并显示吗?
      

  2.   


    <s:iterator value="#request.gpsClientList" id="gpsClient"
    status="stat">
    <tr class="TRgrey"
    onmouseover="this.className='table_onmouseover';"
    onmouseout="this.className='TRgrey';">
    <td class="TDblack">
    <s:property value="#gpsClient.xuhao" />
    </td>
    <td class="TDblack">
    <s:property value="#gpsClient.gpsServiceNumber" />
    </td>
    <td class="TDblack">
    <s:property value="#gpsClient.gpsLineNumber" />
    </td>
    <td class="TDblack">
    <s:property value="#gpsClient.simSeriesNumber" />
    </td>
    <td class="TDblack">
    <s:property value="#gpsClient.simPhoneNumber" />
    </td>
    <td class="TDblack">
    <s:property value="#gpsClient.firstCenterIp" />
    </td>
    <td class="TDblack">
    <s:property value="#gpsClient.firstCenterPort" />
    </td><td class="TDblack">
    <a href="javascript:showEdit(${gpsClient.gpsClientId}, ${request.companyId});" >编辑</a>
    </td>
    </tr>
    </s:iterator>
      

  3.   

    不需要大家写完整的代码,只需要说一下,js里面怎么修改 <s:property />或者List中的值
      

  4.   

    用ajax给修改的那行重新赋值,就不需要连接数据库了
      

  5.   

    用js重新写<s:iterator />
      

  6.   

    比如说,我修改了下面两列的值 <td class="TDblack">
                                        <s:property value="#gpsClient.gpsLineNumber" />
                                    </td>
                                    <td class="TDblack">
                                        <s:property value="#gpsClient.simSeriesNumber" />
                                    </td>
    js里面怎么写?
      

  7.   

     将<s:property value="#gpsClient.simSeriesNumber" />放到<span>中,如
    <span id="动态生成"><s:property value="#gpsClient.simSeriesNumber" /></span>
    得到其ID动态改变其innerHTML属性
      

  8.   

    总体思路就是将struts标签<s:property.../>用HTML组件包含进来,然后给组件生成一个唯一的ID,根据ID动态操作DOM
      

  9.   

    楼主还在找方案啊这么说吧,你写JSP的时候写了<s:>这类的标签和JS代码。当JS代码运行的时候,你的<s:>标签早就被转换成了html所以用JS操作<s:>标签没戏。但是你可以看看<s:>标签自己生成了什么样的html标记然后JS去操作html标记就可以了怎么操作,是应该你自己去写的。CSDN一般也就给个思路
      

  10.   

    <s:>标签只是输出,没有生成html标记吧
      

  11.   

    用 status="stat" 给 <tr> 一个id 比如 <tr id="id"+<s:property value="stat.index"/> >
    <a href="javascript:showEdit(${gpsClient.gpsClientId}, ${request.companyId});" >编辑</a>
    在你点击“编辑”的时候 把 刚才 的id 传进去,这样就可以得到要修改的 tr 了,对于tr 下面的内容  用js 就可以得到了,得到后就可以改了。
      

  12.   

       你可以直接用Jquery传到后台去处理,   然后再显示出来。   整个过程都不会刷新的。
      

  13.   

    点击修改的时候把原来记录值的ID带过去,修改完,点击保存时,根据ID用JS把值复制就可以
      

  14.   

    这不难的,这种功能常用到的,点击编辑的时候,读取当前行的值,赋值到弹出层,点击保存的时候,并通过ajax把数据保存到后台,保存成功后再将弹出层的值重新赋值给当前表格
      

  15.   

    根据楼主的想法,能不能再执行了一次后台操作后得到的list保存在session中,进行对某个记录编辑的时候,只是修改下session中的list的对应的值,让画面在重新刷一下呢?