0

プロジェクトでjqGridを使用しており、幅を900pxに設定し、すべてのグリッドで同じ構成を使用しています。

それぞれに幅が設定された4つの列があり、オプションshrinkToFitがtrueに設定されている場合、列は900pxに合うように引き伸ばされます。

しかし、14列の2番目のグリッドがあり、それぞれに幅を設定した場合、trueに設定されているため、jqGridは列の幅を尊重しませんshrinkToFit。falseに設定すると、この問題は解決します。しかし、別の問題が発生しました。最初のグリッドは各列に150pxの幅を取り、列はグリッドに合うように伸びていません。

質問:構成を変更せずに、列の幅の合計がグリッドの幅よりも大きい場合に水平スクロールバーを実現する方法はありますか?

4

1 に答える 1

2

申し訳ありませんが、どのような振る舞いをしたいかを正確に理解することは非常に困難です。

まず、グリッドの列のどの幅が最適かを知っているか、列のスケーリング(ストレッチ)を行うかを決定する必要があります。列の幅は重みとして解釈されます。最後の動作が必要な場合は、デフォルト設定を選択する必要がありますshrinkToFit: true。この場合、width100、200、および300の値は、値1、2、および3と完全に同じであることを意味します。

私は個人的に、ほとんどの場合、多くの列を持つグリッドを持っています。したがって、shrinkToFit: true小さなモニターでのデフォルト設定の使用は、列の大きなスクイーズに従います。そのため、グリッド上で役立つ情報を実際に見ることはできません。だから私shrinkToFit: falseはケースで使用することを好みます。すべての列のピクセル単位の幅がどれであるかを知っており、widthグリッド作成時の値を設定します。そのため、大型モニターを使用しているユーザーは、最も重要な情報をすべて直接見ることができます。widthさらに、グリッドのパラメーターは指定しません。ユーザーは、必要に応じてページのスクロールバーを使用します。要件は異なる可能性があり、どちらが最適な値を選択する必要があります。

それでもを使用したいshrinkToFit: trueが、グリッドのすべての幅の合計として幅の他の値を使用する場合は、もう1つのオプションがあります。メソッドを使用できますsetGridWidth。オプションの2番目のブールパラメータがありますshrink。1つのパラメーターでメソッドを使用すると、グリッドsetGridWidthのオプションの値に基づいて縮小されますが、2番目のパラメーターを明示的に使用すると、縮小せずに幅を変更できます。おそらくそれはあなたが実装したいwnatです。shrinkToFitshrink

私が答えで説明したもう1つのオプション。jqGridには、グリッドの一部の列の幅を新しい値に変更できるメソッドがありません。回答では、列の幅を変更するためのresizeStop内部メソッドを使用する回避策(回答からのコールバックのコードを参照)について説明しました。dragEndデモはサブグリッドに使用されますが、すべてのグリッドに使用できるのと同じアプローチです。

于 2013-01-22T19:41:34.157 に答える