2013-12-18 43 views
0

我有一個包含狀態信息作爲對象的值的地圖.Ajax應輪詢地圖並更新網格上的狀態。我在更新相同的問題時面臨問題。 我使用的代碼片段是:關於使用Ajax輪詢的網格數據的人口

setInterval(
    $.post("./listStatus.action", { 
    method: "getStatus", 
    }, function(data, success) { 
     if (success == "success") {   
      var rowsIds = statusGrid.getDataIDs(); 
      console.log("Row Ids:"+rowsIds); 
     for(var i=0;i<data.statusList.length;i++){ 
      var rowData=statusGrid.jqGrid('getRowData',data.statusList[i].rowID); 
      rowData["Status"] =data.statusList[i].Status; 
      statusGrid.jqGrid('setRowData', data.statusList[i].rowID, rowData); 
      } 

     } 
    }),5000); 

在第一次調用其能夠在第二個電話不過顯示數據起它給Uncaught SyntaxError: Unexpected identifier
任何人都可以幫我如何實現用例,以及如何解決這個問題,因爲我是新來的JS。

謝謝

回答

0

我不知道這是否完全回答你的問題,但它可能會讓你去。根據我對jqGrid的經驗,我的自動網格刷新看起來像這樣。

如果我的HTML看起來像這樣:

<div style="margin: 10px;"> 
    <table id="custGrid"></table> 
    <div id="ptoolbar"></div> 
    <div id="pager" class="scroll" style="text-align: center;"></div> 
</div> 

中的JavaScript有這樣的:

var grid = $("#custGrid"); 
jQuery("#custGrid").jqGrid({ ... }); 

當我刷新在網格中的數據,我會做這樣的事情:

jQuery("#custGrid").jqGrid('setGridParam', { search: true, postData: { filters: postobj }, page: 1 }); 
jQuery("#custGrid").trigger("reloadGrid"); 

觸發器重新加載指示jqGrid根據修改後的網格參數獲取新數據。

希望這會有所幫助。

+0

感謝您的答覆。如果我想使用setInterval方法,可以給我建議我如何實現上述刷新不工作在我的用例。 – user3062513

0

setInterval需要一個功能第一個參數:

setInterval(function() { 
    $.post("./listStatus.action", { 
     method: "getStatus", 
    }, function (data, success) { 
     if (success == "success") { 
      var rowsIds = statusGrid.getDataIDs(); 
      console.log("Row Ids:" + rowsIds); 
      for (var i = 0; i < data.statusList.length; i++) { 
       var rowData = statusGrid.jqGrid('getRowData', data.statusList[i].rowID); 
       rowData["Status"] = data.statusList[i].Status; 
       statusGrid.jqGrid('setRowData', data.statusList[i].rowID, rowData); 
      } 
     } 
    }); 
}, 5000); 

我沒有檢查你的代碼的其餘部分。