jQuery MiniUI

标题: 多个datagrid ,如何获取data.length是否为零来判断datagrid是否显 [打印本页]

作者: tanxincl@163.co    时间: 2017-3-21 21:18:07     标题: 多个datagrid ,如何获取data.length是否为零来判断datagrid是否显

本帖最后由 tanxincl@163.co 于 2017-3-22 20:08 编辑

   arr是个数组
for(var i=0;i<arr.length;i++){
                                               var id="yw"+i;
                                              mini.parse();
        var datagrid = "datagrid"+i ;
        //document.getElementById(id).style.display="";
        var grid   = mini.get(datagrid);
                grid.load({pid:text.pid},function(  ){
                 var data = grid.getData();
                    console.log( data.length);//  回调函数求出来的并非传入的datagrid的       data.length
               
             })
            
                     }

作者: dforce    时间: 2017-3-22 10:46:51

不清楚你获取的grid到底有什么问题
grid.getData()就是获取到当前表格加载到的数据
作者: tanxincl@163.co    时间: 2017-3-22 11:15:12

dforce 发表于 2017-3-22 10:46
不清楚你获取的grid到底有什么问题
grid.getData()就是获取到当前表格加载到的数据 ...

[attach]9009[/attach]
循环4次 四个datagrid
console.log(id+"data.length:"+ data.length);应该有3个length长度为1的  结果是:
日志: yw38data.length:0
日志: yw38data.length:0
日志: yw38data.length:1
日志: yw38data.length:1  获取的是同一个id   。


作者: dforce    时间: 2017-3-22 11:28:49

tanxincl@163.co 发表于 2017-3-22 11:15
循环4次 四个datagrid
console.log(id+"data.length:"+ data.length);应该有3个length长度为1的  结果 ...
  1. var datagrids=mini.findControls(function(control){
  2.    if(control.type==“datagrid”) return true;
  3. })
  4. for(var i=0,l=datagrids.length;i<l;i++){
  5.     datagrids[i].load({},function(e){
  6.             if(e.data.length==0){
  7.                   e.sender.setVisible(false);
  8.             }
  9.     })
  10. }
复制代码

作者: tanxincl@163.co    时间: 2017-3-22 16:03:23

dforce 发表于 2017-3-22 11:28

  for(var i=0,l=arr.length;i<l;i++){
                                      var id="yw"+arr;
                                  datagrids.load({pid:text.pid},function(e){
                                             console.log (e.data.length);
                                       if(e.data.length!=0){
                                              e.sender.setVisible(false);                                    
                                      }
                                    })
                                 }请问为什么 sender方法 我的js版本问题?
queryAll.jsp:623 Uncaught TypeError: e.sender.setVisible is not a function
    at mini.DataTable.<anonymous> (queryAll.jsp:623)
    at miniui.js:11
作者: dforce    时间: 2017-3-22 17:33:25

tanxincl@163.co 发表于 2017-3-22 16:03
for(var i=0,l=arr.length;i

直接用grid.setVisible(false)吧
作者: tanxincl@163.co    时间: 2017-3-22 20:08:00

dforce 发表于 2017-3-22 17:33
直接用grid.setVisible(false)吧

非常感谢!
作者: felt    时间: 2017-3-23 09:26:30

tanxincl@163.co 发表于 2017-3-22 20:08
非常感谢!

前面有混乱的问题的原因是,表格是异步加载的,在你回调的时候已经在加载别的表格了。
作者: tanxincl@163.co    时间: 2017-3-23 15:01:45

felt 发表于 2017-3-23 09:26
前面有混乱的问题的原因是,表格是异步加载的,在你回调的时候已经在加载别的表格了。 ...

[attach]9036[/attach]
for(var i=0;i<arr.length;i++){
                      var id="yw"+arr;
                         $('#print').append($(ymarr[arr]));
                         mini.parse();
             var datagrid1 = "datagrid"+arr;
                          grid  = mini.get(datagrid1);
                           grid.load({pid:text.pid},function(e){
                                var grid = e.sender;
                              console.log("id"+grid.id+"length:"+e.data.length);
                                if(e.data.length==0){
                                                 //回调函数如何在此获取值为0的传入的grid的id.  不管多少个datagrid, 实际获取的是最后一个id.
                                                 console.log(grid);
<%--                                                  console.log(datagrid1);--%>
<%--                                             $('id').hide;  --%>
                                     }
     })
                        

作者: felt    时间: 2017-3-23 16:14:49

tanxincl@163.co 发表于 2017-3-23 15:12
我不才,目前只能用mini-xx的 xx的大小和我传入id的顺序值来匹配。

因为ajax是异步的,当你第一个ajax回调执行的时候,其他其他的表格加载也进行了,
这样你的数据就不对赢了。
要么分开处理了,用不同的变量存表格
作者: tanxincl@163.co    时间: 2017-3-23 17:20:42

felt 发表于 2017-3-23 16:14
因为ajax是异步的,当你第一个ajax回调执行的时候,其他其他的表格加载也进行了,
这样你的数据就不对赢 ...

是的,谢谢你。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2