0

我在 jsp 页面中有表格,每行都有刷新按钮,点击每个刷新按钮我有一个 javascript/ajax 调用,它将转到操作类并获取状态和#records 的值,并用检索到的列替换对应行数据

这是我的jsp表:

<table border="1" class="displaytab" id="rtable">
         <s:if test="%{user.roles == 'admin'}">
         <tr>   <td  colspan="10" style="background:#7395B8;color:white;font-size:18px;font-weight:bold;"><center>Admin</center></td></tr>
         </s:if>
         <tr> 
         <th>FileId</th><th>File Name</th><th>Upload Date</th><th>#Records</th><th>Status</th><th>Estimated Time</th><th>Processed Records</th><th>Generate Report</th><th></th><s:if test="%{user.roles == 'admin'}"><th>Controls</th></s:if>
         </tr>

         <s:iterator value="uploadList" var="m"> 
            <tr>   
            <td><s:property value="%{#m.fileId}" /></td> 
            <td><s:property value="%{#m.fileName}" /></td>
            <td><s:property value="%{#m.uploadDate}" /></td>
            <td><div id="div2"><s:property value="%{#m.numRecords}" /></div></td>
            <td><div id="div1"><s:property value="%{#m.status}" /></div></td>
            <td>tbd</td>

            <td><s:property value="%{#m.numRecords}" /></td>
            <td><a href=""><img src="images/generate.png" title="Generate Report"></a></td>
            <td><a href=""><img src="images/refresh.png" title="Refresh" id="refresh" onclick="refreshRecord(<s:property value="%{#m.fileId}" />);"></a></td>

这是我的 ajax javascript:

var id;
         function refreshRecord(value)
        {
            id = value;
            alert(id);
        }

        $(document).ready(function(){
            $("#refresh").click(function(){
               var fileId=id;
               alert("ajax id is "+fileId);
               var rowNum = $(this).parent().parent().index();;
               alert(rowNum);
               $.ajax({
               type:"post",
                url:"checkStatusAndNumRecs",
               data:{fileId:fileId},
                success:function(data)
               {
                    setTimeout(alert(data), 2000);
                    var allTds = $("#rtable tr:eq('"+rowNum+"')").find('td');
                    $(allTds)[4].html(data[0]);               
                    $(allTds)[3].html(data[1]);
               },
               error:function(data)
               {
                $("#div1").html("It was a failure !!!");
               }
                });
                });
                });
        </script>

这是我的动作类“checkStatusAndNumRecs” public String execute() {

    System.out.println("here inside action-------------");
    PersistenceService svc = PersistenceServiceImpl.getInstance();
    status = svc.getStatusByFileId(fileId);
    System.out.println("status is "+status);
    numRecords = svc.getNumRecordsByFileId(fileId);
    System.out.println("num records are "+numRecords);
    return "SUCCESS";
}

我正在运行这个,在动作类中我得到状态和 numRecords,问题是

  1. 仅用于调用第一行 ajax 函数,其余行不进入 ajax 函数

  2. 我没有在 ajax 中获得状态和 numRecords

3.datafrom action 类应该替换为status 和#records 两列。请任何身体帮助,我从几天开始为此而苦苦挣扎。

而且我没有使用 servlet,并且在表中我正在迭代数据列表。

4

1 回答 1

0

我也遇到过这样的问题,我认为您的问题出在您的 html 表格中。您将刷新按钮放在了表格中。当 ajax 到达您的刷新按钮时,它无法读取按钮并且发生异常而不是下一次通过排。

于 2013-09-27T12:50:05.307 回答