次のようにjqGrid columnChooserを使用しています。
jQuery(grid).jqGrid(
'navButtonAdd',
pagerDiv,
{
caption: "Columns",
buttonicon: "ui-icon-newwin",
title: "Hide/Show Columns",
onClickButton: function () {
$(this).jqGrid('columnChooser', {
done: function (perm) {
if (perm) {
$(this).jqGrid('remapColumns', perm, true);
}
},
modal: true,
width: 400,
height: 300,
classname: 'column-chooser-select'
});
}
}
);
列が追加または削除されるたびに発生する columnChooser (jqGrid に付属するjQuery UI Multiselectプラグインを使用) でイベント ハンドラーを指定する方法があるかどうか疑問に思っていました。だから私はそれが2つの部分からなる質問だと思います:
- jQuery UI Multiselect はそのようなことをサポートしていますか?
- もしそうなら、jqGrid ソースを変更せずに接続する方法はありますか?
私が達成しようとしていることの背景のビット:
デフォルトのグリッド構成では、多くの列が非表示になっています。これらの列の一部はデータベースから取り込まれません - それらはあいまいでめったに使用されないデータ要素であり、取り込まれるとクエリ実行のパフォーマンスが劇的に低下します (1 億以上のレコードを持つテーブルを含む複数の結合)。
ユーザーがこれらの列のいずれかを選択して表示する場合、サーバーへの別のラウンドトリップが必要であり、時間がかかる可能性があることを警告し、列の追加をキャンセルするオプションを提供します。
ありがとう