0

我有一个网格视图:

# | Status   | ReturnCode
1 | Imported | 
2 | Imported | 
3 | Imported | 

...应该逐行更新。所以我有一个按钮,当点击它时,会将 gridview 变成这个,而每一行都在等待更新(这是由 web 服务/pagemethods 调用完成的):

# | Status   | ReturnCode
1 | Pending  | 
2 | Pending  |  
3 | Pending  |

根据更新的返回值,它应该显示一个一个更新,如下所示:

# | Status      | ReturnCode
1 | Successful  | 1.0.0
2 | Pending     | //updating.... 
3 | Pending     |

..所以在所有更新之后,它应该显示如下:

# | Status      | ReturnCode
1 | Successful  | 1.0.0
2 | Successful  | 1.0.0 
3 | Successful  | 1.0.0

..但问题是它显示如下:

# | Status      | ReturnCode
1 | Pending     | 
2 | Pending     |  
3 | Successful  | 1.0.0

我怎样才能解决这个问题?

供您参考,这是我的脚本:(由更新按钮调用)

<script type="text/javascript">
    function updateGrid() {
        var grid = document.getElementById("<%=gv.ClientID%>");

        for (var i = 0; i < grid.rows.length - 1; i++) {
            var statusLabel = grid.rows[i + 1].cells[4].childNodes[1];
            statusLabel.innerText = "Pending";
        }

        updateEachRow(grid);
    }
</script>
<script type="text/javascript">
    function updateEachRow(grid) {
       for (var j = 0; j < grid.rows.length - 1; j++) {
            var index = j + 1;
            var acctno = grid.rows[index].cells[1].childNodes[1];
            var mobile = grid.rows[index].cells[2].childNodes[1];
            var operation = grid.rows[index].cells[3].childNodes[1];
            var statusLabel = grid.rows[index].cells[4].childNodes[1];
            var statCodeLabel = grid.rows[index].cells[5].childNodes[1];

            PageMethods.UpdateRow(acctno.innerText, mobile.innerText, operation.innerText, OnResult);

            function OnResult(result) {
                statusLabel.innerText = (result == "1.0.0" ? "Successful" : "Failed");
                statCodeLabel.innerText = result;
            }
        }
    }    
</script>

我希望我已经足够清楚地解释了我的问题。感谢所有的帮助。:)

4

0 回答 0