jqgrid定时改变某个单元格的值,或是一列值

思路:

首先是在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 :需要更新的值


大概就这样,有不清楚或是想交流可以留言

我不是来改变世界的
原文地址:https://www.cnblogs.com/notchangeworld/p/11341538.html