グリッドレベルの「sortable」オプションが有効になっているjqGridがあります。これにより、列をドラッグして並べ替えることができます。これはすばらしいことです。ただし、ユーザーが1つの特定の列でこれを実行しないようにし、他の列は影響を受けないようにします。これは可能ですか?
1 に答える
あなたの質問は非常に興味深いので、解決策を示す対応するデモを作成しました。デモでは、最初の列「日付」がソートできません。
近い主題に関する他の2つの古い回答を読むことをお勧めします: thisとthis . 私の提案は同じ考えに基づいています。
jqGrid のオプションを使用する場合に内部的に使用される内部 jqGrid メソッド sortableColumns がありますsortable: true
。このsortableColumns
メソッドは実装に jQuery Sortable を使用し、値 ">th:not(:has(#jqgh_list_cb,#jqgh_list_rn,#jqgh_list_subgrid),:hidden)"items
を持つグリッドのオプションを初期化します。id="list"
列"cb"
を並べ替え不可に"rn"
し"subgrid"
ます。jqGrid オプションまたはを使用するとmultiselect: true
、列をグリッドに挿入できます。同じように、列要素の対応する ID は になります。したがって、次のようにオプションを使用できますrownumbers: true
subGrid: true
name: "invdate"
jqgh_list_invdate
sortable
sortable: {
options: {
items: ">th:not(:has(#jqgh_list_cb,#jqgh_list_invdate,#jqgh_list_rn,#jqgh_list_subgrid),:hidden)"
}
}
"invdate"
列をソート不可にします。