思路:
首先是在jqgrid中獲取完整的數據表格;
然后要更新數據單元格中的內容,如果想簡單粗暴,那么直接執行
$(function () {
setInterval(function () {
$("#grid-table").jqGrid().trigger("reloadGrid");
//alert("我要執行刷新了")
},8000)
})
這樣執行的結果就是刷新整個表格,當然了,如果此時表格有選中狀態會變成無狀態;並且表格會直接定位到表格的頂部,無論之前在哪;
重點來了:直接刷新指定的單元格,頁面其他數據不變
使用ajax定時獲取數據,就是重復請求接口,
然后根據獲取的rowid,去定位單元格,更新數據;
懟代碼:
jqgrid表格數據不變:
jQuery(grid_table).jqGrid({
url : //獲取數據的URL地址
datatype : "json", //返回的數據類型,絕大多數情況都應該是JSON
colModel:[
{name: "id",hidden:true, key:true},
{name: "hostName",label:"主機名稱",width:150},。。。
ajax代碼:
$(function () {
//ajax獲取數據,然后更新指定的行
setInterval(function () {
$.ajax({
url: url,
type: "GET",
dataType:"json",
success: function (result) {
//alert(result.data.length);
var vmDataArr = result.data;
//獲取id,然后根據id去改變值
for (var i=0;i<result.data.length;i++){
var vmId = vmDataArr[i].id;
//alert(vmId);
var datatime = vmDataArr[i].getDataTime;
//獲取指定div id 填進去
$("#grid-table").jqGrid('setCell',vmId,"getDataTime",datatime);
...
}
}
});
//alert("我要執行刷新了")
},5000)
})
另外關於jqgrid:
顯示/隱藏:
jQuery("#grid_id").setGridParam().showCol("colname").trigger("reloadGrid"); jQuery("#grid_id").setGridParam().hideCol("colname").trigger("reloadGrid");
$("#grid_id").jqGrid('setCell',rowId,"xingming",name);
//'setCell':關鍵字,rowId :指定行id,xingming: 修改的單元格的name,name :需要更新的值
大概就這樣,有不清楚或是想交流可以留言