slickgrid resize导致靠近底部的滚动条间隙

时间:2012-11-01 13:54:11

标签: slickgrid jquery-layout

我有以下问题: 我将Slickgrid与jquery布局结合使用。可以使用此插件调整窗格大小。当我调整Slickgrid窗格的大小时,会出现一个水平滚动条,一开始就不存在,我无法一直滚动到底部。

我创建了一个jsfiddle来演示: http://jsfiddle.net/uNMRT/2/

重现的步骤:

  1. 确保slickgrid窗格没有水平滚动条。
  2. 一路滚动。 (效果很好,你可以查看记录119,最后一个)
  3. 使用垂直拆分器调整slickgrid窗格的大小。确保使滑块区域变小以显示水平滚动条。
  4. 再次向下滚动。请注意,您无法完全向下滚动。现在无法看到记录119。
  5. 我在调整大小时已经做了resizeCanvas:

    center__onresize: function(pane, $pane, state, options) {
                    myGrid.resizeCanvas();
                }
    

    显然这还不够。有什么想法吗?

3 个答案:

答案 0 :(得分:12)

我遇到了同样的问题,看起来光滑的网格没有正确设置“viewportHasHScroll”标志。我找到了以下两个解决问题的方法(SlickGrid v2.1)

1)更新 updateCanvasWidth函数(第396行)并更改以下行

viewportHasHScroll = (canvasWidth > viewportW - scrollbarDimensions.width); 

to(注意“大于或等于”符号

viewportHasHScroll = (canvasWidth >= viewportW - scrollbarDimensions.width);

2)更新 handleScroll功能(第1920行)并更新if块

  //only scroll if they've moved at least one row
  if(vScrollDist && (vScrollDist > options.rowHeight)) {
      ....
  }

答案 1 :(得分:3)

我面临同样的问题但是对于垂直滚动。如果调整容器大小,则垂直滚动条不会完全滚动。它停在第二个记录上。虽然滚动条有空间但是它不能完全移动到底部。如果我将其向下拉,则网格跳跃并且杆再次移动到原始位置。永远无法查看最后一条记录。

答案 2 :(得分:1)

我添加一行时也遇到了问题。这是因为您可能没有正确更新网格。你必须调用grid.updateRowCount();