5

次の問題があります。Slickgrid を jquery レイアウトと組み合わせて使用​​しています。このプラグインでペインのサイズを変更できます。Slickgrid ペインのサイズを変更して、最初は表示されなかった水平スクロールバーが表示されるようにすると、一番下までスクロールできなくなります。

デモンストレーションのためにjsfiddleを作成しました: http://jsfiddle.net/uNMRT/2/

再現する手順:

  1. slickgrid ペインに水平スクロールバーがないことを確認してください。
  2. 最後までスクロールします。(うまく動作します。最後のレコード 119 を表示できます)
  3. 垂直スプリッターを使用して slickgrid ペインのサイズを変更します。水平スクロールバーが表示されるように、slickgrid 領域を小さくしてください。
  4. もう一度下にスクロールします。完全に下にスクロールできないことに注意してください。レコード119は現在見ることができません。

サイズ変更時にすでに resizeCanvas を実行しています。

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

それは明らかに十分ではありません。何か案は?

4

3 に答える 3

12

私は同じ問題に遭遇し、滑らかなグリッドが「viewportHasHScroll」フラグを正しく設定していないようです。この問題を解決するための次の 2 つの回避策を見つけました (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)) {
      ....
  }
于 2013-04-04T17:40:37.480 に答える
1

行を追加するときにも問題がありました。これは、グリッドを正しく更新していない可能性があるためです。grid.updateRowCount(); を呼び出す必要があります。

于 2013-01-09T12:00:27.063 に答える