最後の列をグリッドの右側に固定することはできますか?
私が遭遇したすべてのデモは、1 列目または 1 列目と 2 列目がグリッドの左側にフリーズしていることを示しています。
frozen:true
colModel の最後の列のみにプロパティを使用しようとしましたが、機能しません。
最後の列をグリッドの右側に固定することはできますか?
私が遭遇したすべてのデモは、1 列目または 1 列目と 2 列目がグリッドの左側にフリーズしていることを示しています。
frozen:true
colModel の最後の列のみにプロパティを使用しようとしましたが、機能しません。
jqGrid の固定された列の現在の実装では、最後の列をグリッドの右側に固定することはできません。したがって、jqGrid で要件を実装する簡単な方法がわかりません。
複雑さの理由は、jqGrid での凍結された列の実装にあります。このメソッドは、最初は左から (配列の最初のインデックスから)setFrozenColumns
調べます (ソース コードの一部を参照)。プロパティを持つ最大インデックスを見つけ、別の div にグリッドの列のコピーを作成します。言い換えれば、jqGridはプロパティを持つ最初の列のみを考慮します。持っている他のすべてのプロパティは無視されます。次に、jqGrid は常に左の固定された列のみを持つ div を作成しますcolModel
colModel
colModel
frozen: true
colModel
frozen: true
frozen: true
. そのため、グリッドの右側にある固定された列の使用は提供されていません。
jqGrid では、右側の列または隣接していない列をフリーズすることは不可能であるため、すべてのデモで左側の列のみがフリーズされていることがわかります (列 1 と 3 をフリーズしてみてください。同様に、列 1、2、および 4 を凍結し、3 列を凍結しない場合、列 1 および 2 のみが凍結されます)。
そのようなルールを課す jqGrid のコード スニペットの下 (コメント付きの while ループを参照from left, no breaking frozen
)。右側の列を固定することを真剣に考えている場合は、必要に応じて jqGrid コードを変更してみてください。
setFrozenColumns : function () {
return this.each(function() {
if ( !this.grid ) {return;}
var $t = this, cm = $t.p.colModel,i=0, len = cm.length, maxfrozen = -1, frozen= false;
// TODO treeGrid and grouping Support
if($t.p.subGrid === true || $t.p.treeGrid === true || $t.p.cellEdit === true || $t.p.sortable || $t.p.scroll )
{
return;
}
if($t.p.rownumbers) { i++; }
if($t.p.multiselect) { i++; }
// get the max index of frozen col
while(i<len)
{
// from left, no breaking frozen
if(cm[i].frozen === true)
{
frozen = true;
maxfrozen = i;
} else {
break;
}
i++;
}