是滚动加载数据(lazyload),不是数据滚动显示,楼主清楚效果没有
jqGrid选项配置

解决方案 »

  1.   

    百度了一下lazyload,大体明白是啥意思了,就是滚动到相应的位置,数据才加载,是不? 大版主,我想实现jqgrid加载完数据后,因数据量比较多,有滚动条,在不用鼠标拖滚动条的前提下,能让数据自动滚动显示,这个能实现吗?
      

  2.   

    这个不是很多简单,获取数据的容器,设置容器scrollTop搞定,注意修改id选择器         jQuery("#grid").jqGrid({//////////
                 gridComplete: function () {                 var div = $('#grid').closest('.ui-jqgrid-bdiv')[0]//////////////
    , scrollHeight = div.scrollHeight, scrollTop = 0;
                    var timer= setInterval(function () {
                         scrollTop += 5;
                         div.scrollTop = scrollTop;
                         if (scrollTop >= scrollHeight) clearInterval(timer);//滚动到底部,释放计时器
                     }, 100);
                 },
      

  3.   


    大版主 jqgrid用的是拼接起来的本地数据,我想让数据无限的滚动下去,也就是滚动到底部 再重头开始滚动,如此循环下去,我研究了好一回,就是搞不定,请版主再发神威。
      

  4.   

             jQuery("#grid").jqGrid({//////////
                 gridComplete: function () {
     
                     var div = $('#grid').closest('.ui-jqgrid-bdiv')[0]//////////////
    , scrollHeight = div.scrollHeight, scrollTop = 0;
                    var timer= setInterval(function () {
                         scrollTop += 5;
                         div.scrollTop = scrollTop;
                         if (scrollTop >= scrollHeight) scrollTop=0;//设置滚动头为0,重新开始就行了
                     }, 100);
                 },
      

  5.   

    可以重复滚动,不过有个小bug,忘记减去容器高度了,要空等待一段时间。。参考:jqgrid自动滚动数据内容demo
      

  6.   

    gridComplete: function () {
               var div = $('#dataList').closest('.ui-jqgrid-bdiv')[0],offsetHeight = div.offsetHeight//////////////
    , scrollHeight = div.scrollHeight-offsetHeight, scrollTop = 0,timer;
               function scrollBody() {
                timer = setInterval(function () {
              scrollTop += 1;
              div.scrollTop = scrollTop;
              if (scrollTop >= scrollHeight) {//循环滚动
                  scrollHeight = div.scrollHeight - offsetHeight;//如果在滚动过程中添加过数据,需要重新结算scrollHeight
                  if(scrollTop>=(ob3-16)*33){
                  scrollTop = 0; //循环滚动,重置滚动头即可
                  }
              }
          }, 50);
               }
               $('#dataList').mouseover(function () {//添加over事件,停止滚动
          clearInterval(timer);
         });//.mouseout(function (e) {//添加mouseout事件,继续滚动
           //scrollBody(); 
          //});
        if(ob3>16){
          scrollBody() ;///开始滚动jqgrid内容
        }
       }
    这是我最终的代码 不知道版主说的小bug是不是循环滚动的时候表格会闪,比如当前滚动第N行的时候,表格要先调到最顶端,然后再滚动第(N+1)行,如果是的话 我上面写的代码不会出现这个问题(其中33是我表格中每行的高度,ob3是表格的总行数,16是表格可看到的行数),但是我这段代码有个问题貌似,在IE10模式下,运行几分钟,浏览器会挂掉,但是在IE8模式下没有发现这个问题,不知道是什么情况,总之,非常感谢版主的帮助。
      

  7.   

    请参考jqGrid中文demo:http://blog.mn886.net/jqGrid/