申し訳ありませんが、どのような振る舞いをしたいかを正確に理解することは非常に困難です。
まず、グリッドの列のどの幅が最適かを知っているか、列のスケーリング(ストレッチ)を行うかを決定する必要があります。列の幅は重みとして解釈されます。最後の動作が必要な場合は、デフォルト設定を選択する必要がありますshrinkToFit: true
。この場合、width
100、200、および300の値は、値1、2、および3と完全に同じであることを意味します。
私は個人的に、ほとんどの場合、多くの列を持つグリッドを持っています。したがって、shrinkToFit: true
小さなモニターでのデフォルト設定の使用は、列の大きなスクイーズに従います。そのため、グリッド上で役立つ情報を実際に見ることはできません。だから私shrinkToFit: false
はケースで使用することを好みます。すべての列のピクセル単位の幅がどれであるかを知っており、width
グリッド作成時の値を設定します。そのため、大型モニターを使用しているユーザーは、最も重要な情報をすべて直接見ることができます。width
さらに、グリッドのパラメーターは指定しません。ユーザーは、必要に応じてページのスクロールバーを使用します。要件は異なる可能性があり、どちらが最適な値を選択する必要があります。
それでもを使用したいshrinkToFit: true
が、グリッドのすべての幅の合計として幅の他の値を使用する場合は、もう1つのオプションがあります。メソッドを使用できますsetGridWidth
。オプションの2番目のブールパラメータがありますshrink
。1つのパラメーターでメソッドを使用すると、グリッドsetGridWidth
のオプションの値に基づいて縮小されますが、2番目のパラメーターを明示的に使用すると、縮小せずに幅を変更できます。おそらくそれはあなたが実装したいwnatです。shrinkToFit
shrink
私が答えで説明したもう1つのオプション。jqGridには、グリッドの一部の列の幅を新しい値に変更できるメソッドがありません。回答では、列の幅を変更するためのresizeStop
内部メソッドを使用する回避策(回答からのコールバックのコードを参照)について説明しました。dragEnd
デモはサブグリッドに使用されますが、すべてのグリッドに使用できるのと同じアプローチです。