2012-03-28 30 views
4

SlickGridを使用し始めましたが、ページングと対話できるリモートモデルプラグイン。私が持っている唯一の問題はブラウザの問題だと思われますが、誰かが問題を解決できるトリックを知っているのであれば私は不思議です。SlickGridの垂直スクロールバーが正しく表示されない場合があります。フィルタが表示されない限り、ビューポートのサイズを変更することはできません。

私のモデルでAJAXでデータページを取得し、grid.setData()grid.render()メソッドでグリッドを更新しています。

私が解決したい問題は、フィルタパネル(grid.hideTopPanel()またはgrid.showTopPanel())の現在の表示を変更しない限り、データの長さが変わると垂直スクロールバーが実際に混乱することです。混乱していると、スクロールバーのスクロールハンドルが現在の行数と違うサイズに変更されず、リストが大きくなるとスクロールしながら上下にスクロールする。

ブラウザがビューのポートの高さを再計算する必要があるため、「修正」が機能すると仮定していますが、強制的にそのような方法がありますか?それとも、私がやろうとしていることをするための良い方法がありますか?

答えて

3

私は実際に探していたものがgrid.updateRowCount()でした。私は彼がこれにgrid.setData()の呼び出しを追加すると思いますが、今のところ2つのメソッド呼び出しが一緒に使用されていることを確認してください。

0

grid.invalidate()を試しましたか?私の経験では、グリッドはほとんどすべてを再計算しなければなりません。あなたが必要とする以上に重い手であるかもしれませんが、完全な無効化が問題を解決するかどうかは少なくとも見ることができます。

+0

grid.setData()メソッドを見ると、無効化が呼び出されますが、提案のおかげで –

+0

あなたは 'setData()'を何度も呼び出していることに気付きませんでした。データ参照をリセットしたままにしておくと、いつも 'invalidate()'が返されます。あなたが修正を見つけてうれしい。 – njr101

0

私はそれを理解しました。 grid.setData()に電話した後、grid.resizeCanvas()に電話する必要があります。これは、grid.setData()メソッドの一部である必要があります。これを呼び出すと行数が変更されるためです。しかし、とにかく、それはあなたがする必要があります。

関連する問題