思路:
首先是在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:"主机名称",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 :需要更新的值
大概就这样,有不清楚或是想交流可以留言