1

我正在使用 Slickgrid 来显示一个大型数据集,该数据集可用于从几列到 50 列的任何地方。我需要用户能够按照他们的意愿对列重新排序,我目前可以这样做,但会带来一些不便。如果我碰巧抓住最后一列并将其移动到具有多个水平窗口宽度列的网格的前面,我必须拖放并手动向左滚动,然后才能将列定位到我想要的位置。

有谁知道是否有办法强制网格根据我试图拖动列的位置自动水平滚动(即当我试图将列拖动到当前网格视口之外时)?

4

2 回答 2

1

找到您要滚动的鼠标指针位置并通过此方法应用滚动...

$('#myGrid').mousemove(function(e){ //#myGrid is id of div of grid container
          var parentOffset = $(this).offset(); 
          diffX = ( ( parentOffset.left + $('#myGrid').width() ) - e.pageX);

          if (diffX < 59 && diffX > 17){ //change the minimum and maximum area where you want to scroll. mine requirement is 59 and 17. You can find your custom position by some alerting or console.log
              $('.slick-viewport ').scrollLeft($('.slick-viewport ').scrollLeft() + 5);
          }
  });
于 2014-01-15T11:13:14.243 回答
1

我最终通过在网格之外创建网格列名的可排序列表来解决这个问题。当列名的顺序发生变化时,网格上显示的列会根据新的顺序通过调用函数 grid.setColumns() 重置。

于 2014-01-23T17:32:00.200 回答