JS多部分局部刷新

//_obj是tr对象    

var _obj = $(".x-table tr");      

//_length是tr行数      

var _length = _obj.length;      

//循环函数    

setInterval(function(){    

//遍历tr    

for(var i = 0; i < _length; i++) {      

  

    if(i==0 || i==1 || i==2 || i==3 || i==4 || i==5){    

        continue;    

    }    

 

    var _td = _obj.eq(i).find("td");      

    var _this = _td.eq(21);    

   

    var _changeVal = _this.text();      

 

     if(_changeVal=="1"){     

        contentPane.setCellValue("V"+(i+1),null,"2")  

        }else if(_changeVal=="2"){  

            contentPane.setCellValue("V"+(i+1),null,"1")  

        }  

  

}      

        

},1000)//1000表示1秒后循环刷新     

这样子写第V列并没有更新

是一个填报报表,点了编辑提交之后,需要展示界面局部刷新

image.png

FineReport 帆软用户USzosfvog4 发布于 2024-11-12 16:10 (编辑于 2024-11-12 16:13)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
snrtuemcLv8专家互助
发布于2024-11-12 16:15

contentPane.setCellValue("V"+(i+1),null,"2")  

改成这个格式

contentPane.setCellValue(0,21,i+1,"2");

================

contentPane.setCellValue(sheet号,列号,行号,"值");  //sheet号行号列号是从0开始  

  • 帆软用户USzosfvog4 帆软用户USzosfvog4(提问者) //_obj是tr对象 var _obj = $(".x-table tr"); //_length是tr行数 var _length = _obj.length; //循环函数 setInterval(function(){ //遍历tr for(var i = 0; i < _length; i++) { //如果第一个是标题,执行if条件中continue,没有标题请注释if条件 //如果第1,2,3都是标题行,请把if条件改成 if(i==0 || i==1|| i==2) if(i==0 || i==1 || i==2 || i==3 || i==4 || i==5){ continue; } //遍历tr中的对象td var _td = _obj.eq(i).find("td"); //需要刷新的列,eq(4)表示单元格E列 (可根据自己需要更改) var _this = _td.eq(21); //取单元格E列值 var _changeVal = _this.text(); //contentPane.setCellValue("E"+(i+1),null,"2") 意思是给E列单元格赋值 因为行号是从0开始所以赋值给E列单元格时候是i+1 if(_changeVal=="1"){ // contentPane.setCellValue("V"+(i+1),null,"2") contentPane.setCellValue(0,21,i+1,"2"); }else if(_changeVal=="2"){ contentPane.setCellValue(0,21,i+1,"1"); } } },1000)//1000表示1秒后循环刷新
    2024-11-12 16:18 
  • 帆软用户USzosfvog4 帆软用户USzosfvog4(提问者) 这个样子吗,还是不行
    2024-11-12 16:18 
  • snrtuemc snrtuemc 回复 帆软用户USzosfvog4(提问者) 不对啊,你是定时1秒触发,你这个for循环,不一定来的及触发,先把定时循环去掉,直接一个按钮触发js,看看有没有效果
    2024-11-12 16:21 
  • 帆软用户USzosfvog4 帆软用户USzosfvog4(提问者) 回复 snrtuemc 我把时限放大还是不行
    2024-11-12 17:17 
  • snrtuemc snrtuemc 回复 帆软用户USzosfvog4(提问者) 先去掉定时函数,然后直接放一个按钮中,点击事件触发看看效果先,中间可以加alert();语句,看看if判断,循环判断有没有触发到,相当于断点调试
    2024-11-13 09:23 
  • 2关注人数
  • 61浏览人数
  • 最后回答于:2024-11-12 16:15
    请选择关闭问题的原因
    确定 取消
    返回顶部