ダウンロード サンプルファイル (59.3 KB)
カラム表示のカスタマイズ
以前の記事では、columnReorderingプロパティを指定して、ユーザーがドラッグ&ドロップでカラムの並び順を変更できるようにする方法を紹介しましたが、アプリケーションによっては、ユーザーがカラムの表示、非表示を切り替えることができるようにする要件もあるかもしれません。DataGridはカラムの表示、非表示を切り替えるビルトインのUIは提供していませんが、APIでアプリケーションが表示、非表示をコントロールできるようになっています。
以下の例では、チェック・ボックスを使ってカラムの表示、非表示を切り替えています。チェック・ボックスのonChangeコールバックで、DataGridのlayoutプロパティのsetColumnVisibilityメソッドを呼び出します。setColumnVisibilityメソッドには、第一引数に表示を切り替えるカラムのインデックス(structureプロパティのcellsに指定した順番。0から始まります)、第2引数に表示ならtrue、非表示ならfalseを渡します(チェック・ボックスのonChangeコールバックの引数にはチェック・ボックスのオン、オフを示すbooleanの値が渡ってきますので、そのままsetColumnVisibilityメソッドに渡します)。
function setupCheckBoxes(){
var myDataGrid = dijit.byId("myDataGrid");
dojo.connect(dijit.byId("myCheckBox1"), "onChange", function(value){
myDataGrid.layout.setColumnVisibility(0, value);
});
dojo.connect(dijit.byId("myCheckBox2"), "onChange", function(value){
myDataGrid.layout.setColumnVisibility(1, value);
});
dojo.connect(dijit.byId("myCheckBox3"), "onChange", function(value){
myDataGrid.layout.setColumnVisibility(2, value);
});
dojo.connect(dijit.byId("myCheckBox4"), "onChange", function(value){
myDataGrid.layout.setColumnVisibility(3, value);
});
dojo.connect(dijit.byId("myCheckBox5"), "onChange", function(value){
myDataGrid.layout.setColumnVisibility(4, value);
});
};
dojo.addOnLoad(setupCheckBoxes);

メールアドレスのチェック・ボックスをクリックしてオフにするとDataGridのメールアドレスのカラムが非表示になります。

DataGridのlayoutプロパティには、setColumnVisibilityの他にもcolumnReorderingを指定したときに内部的に呼び出されるmoveColumnメソッドも提供されていますので、このメソッドを使って、カラムの並び順を変更する独自のUIを実装することも可能です。
この記事は参考になりましたか?
- 「Dojo道場」~実用アプリ構築のためのベストプラクティス連載記事一覧
- この記事の著者
-
野口 雅人(ノグチ マサト)
日本アイ・ビー・エム株式会社 ソフトウェア開発研究所 シニア・テクニカ ル・スタッフ・メンバー1990年、日本IBM入社。ホームページ・ビルダー、Rational Application Developer などの製品開発に従事。現在はWeb 2.0/RIA関連のソフトウェア開発を担当。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
