SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

「Dojo道場」~実用アプリ構築のためのベストプラクティス

Dojo道場 ~ 第3回「DataGridをもっと使いこなす」

「Dojo道場」~実用アプリ構築のためのベストプラクティス

カラム表示のカスタマイズ

 以前の記事では、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関連のソフトウェア開発を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5640 2010/12/27 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー