jQuery MiniUI

 找回密码
 立即注册
查看: 2477|回复: 7
打印 上一主题 下一主题

关于 grid.updateRow赋值和 e.cellHtml赋值 [复制链接]

Rank: 1

跳转到指定楼层
楼主
发表于 2016-8-17 18:03:57 |只看该作者 |倒序浏览
我的页面加载的时候是使用的grid.on("drawcell", function (e) {    var record = e.record,
         column = e.column,if (column.name == "ceshiStatus") {    var url =record.jfzxUrl;
    $.ajax({
        data: {url: url},
        url: "/ceshi/isExist",
        cache: false,
        async: false,//同步执行
        success: function (data) {
            if (data.code == "200") {
                e.cellHtml = '已启动';
            } else {
                e.cellHtml = '未启动';
            }
        },
    });
}然后我有写了一个定时 setInterval(qryServers,30000)function qryServers(){
    var rows = grid.getData();
    var  operate1="重启";
    var  operate2="停止";
    for(var i=0,l=rows.length;i<l;i++){
        var row = rows[i];
        var url =row.jfzxUrl;
        $.ajax({
            data: {url: url},
            url: "/ceshi/isExist",
            cache: false,
            async: false,//同步执行
            success: function (data) {
                if (data.code == "200") {
                    grid.updateRow(row,{status:"已启动"}) ///
                } else {
                    grid.updateRow(row,{status:"未启动"})
                }
            },
        });
    }
}为什么这样就无法updateRow 中status的值 。但是却在右上角显示一个红色的小三角。。<div name ="ceshiStatus" field="status" width="50" allowSort="true" align="center" headerAlign="center">服务状态</div>


Rank: 1

沙发
发表于 2016-8-17 18:16:55 |只看该作者
本帖最后由 歪脖子 于 2016-8-17 18:40 编辑
  1. grid.on("drawcell", function (e) {
  2.    var record = e.record,
  3.        column = e.column,
  4. if (column.name == "ceshiStatus") {   
  5.         var url =record.url;
  6.     $.ajax({
  7.         data: {url: url},
  8.         url: "/ceshi/isExist",
  9.         cache: false,
  10.         async: false,//同步执行
  11.         success: function (data) {
  12.             if (data.code == "200") {
  13.                 e.cellHtml = '已启动';
  14.             } else {
  15.                 e.cellHtml = '未启动';
  16.             }
  17.         },
  18.     });
  19.         }
  20. });
复制代码

Rank: 1

板凳
发表于 2016-8-17 18:17:27 |只看该作者
本帖最后由 歪脖子 于 2016-8-17 18:45 编辑
  1. setInterval(qryServers,30000)
  2. function qryServers(){
  3.     var rows = grid.getData();
  4.     var  operate1="重启";
  5.     var  operate2="停止";
  6.     for(var i=0,l=rows.length;i<l;i++){
  7.         var row = rows[i];
  8.         var url =row.jfzxUrl;
  9.         $.ajax({
  10.             data: {url: url},
  11.             url: "/ceshi/isExist",
  12.             cache: false,
  13.             async: false,//同步执行
  14.             success: function (data) {
  15.                 if (data.code == "200") {
  16.                     grid.updateRow(row,{status:"已启动"}) ///
  17.                 } else {
  18.                     grid.updateRow(row,{status:"未启动"})
  19.                 }
  20.             },
  21.         });
  22.     }
  23. }
复制代码

Rank: 1

地板
发表于 2016-8-17 18:45:25 |只看该作者
附件: 你需要登录才可以下载或查看附件。没有帐号?立即注册

Rank: 8Rank: 8

5#
发表于 2016-8-18 09:44:39 |只看该作者
歪脖子 发表于 2016-8-17 18:45

1 你能保证你在执行定时器方法的时候,前面的绘制已经全部完成了吗?
2 确定有执行到update吗
3 你这代码有点问题的,跑那么多同步ajax,性能不能保证

Rank: 1

6#
发表于 2016-8-19 09:34:28 |只看该作者
dforce 发表于 2016-8-18 09:44
1 你能保证你在执行定时器方法的时候,前面的绘制已经全部完成了吗?
2 确定有执行到update吗
3 你这代码 ...

1 . 执行定时器的时候数据是已经绘制完成的
2 . 确实执行到了update 。就像我上面那个图片,执行完之后会有一个红色小三角。
3 .数据量大的时候,执行同步ajax,性能可能会影响。现在数据量不是很大。并且执行异步的话。
e.cellHtml = '已启动';  这样是无法赋值的。

Rank: 8Rank: 8

7#
发表于 2016-8-19 10:22:42 |只看该作者
歪脖子 发表于 2016-8-19 09:34
1 . 执行定时器的时候数据是已经绘制完成的
2 . 确实执行到了update 。就像我上面那个图片,执行完之后会 ...

updateRow也会触发drawcell事件,再次绘制了

Rank: 1

8#
发表于 2016-8-19 14:46:37 |只看该作者
felt 发表于 2016-8-19 10:22
updateRow也会触发drawcell事件,再次绘制了

好的 谢谢

Archiver|普加软件

GMT+8, 2024-6-1 07:17 , Processed in 1.055326 second(s), 10 queries .

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

回顶部