SHOEISHA iD

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

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

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

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

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

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

EnhancedGrid

 Dojo 1.4から、通常のDataGridを拡張したEnhancedGridが提供されています。EnhancedGridは、拡張機能を「プラグイン」という手法で提供していますので、使いたい機能を個別に追加することができます。現在EnhancedGridで提供されているプラグイン機能は以下のとおりです。

  • NestedSorting
  • 通常のDataGridでは、一度に1つのカラムでしかソートできませんが、このプラグインにより、優先順位をつけた複数のカラムでソートするUIが提供されます。

  • IndirectSelection
  • チェック・ボックス(複数選択)あるいはラジオ・ボタン(単一選択)を表示して、行単位の選択を使いやすくします。

  • Menu
  • ヘッダーやセルなどを対象にしたコンテキスト・メニューを定義することができます。

  • DnD
  • ドラッグ&ドロップによりカラムや行を移動したり、マウスのドラッグ(スイープ)で複数の行やカラムを選択できるようになります。

 プラグインを使うにはまずプラグインのパッケージを読み込みます。

dojo.require("dojox.grid.enhanced.plugins.NestedSorting");
dojo.require("dojox.grid.enhanced.plugins.IndirectSelection");
dojo.require("dojox.grid.enhanced.plugins.Menu");
dojo.require("dojox.grid.enhanced.plugins.DnD");

 Menu以外のプラグインはpluginsプロパティの対応する子プロパティにtrueを指定するだけで有効にすることができます。Menuの指定については後ほど紹介しますが、ここでは他のプラグインを有効にしてみましょう。

var myPlugins = {
    nestedSorting: true,
    indirectSelection: true,
    dnd: true
};

 DataGridのマークアップをEnhancedGridに変更して、pluginsプロパティを指定します。

<table dojoType="dojox.grid.EnhancedGrid" id="myEnhancedGrid"
    style="width: 500px; height: 230px;"
    store="myDataStore" structure="myStructure" plugins="myPlugins"></table>
</body>
実行結果
実行結果

 ヘッダーのカラムをクリックして、複数のカラムでのソートができます。以下は、グループでソートした後で、メールアドレスでソートした結果です。

実行結果
実行結果

 次は、複数の行を選択して、ドラッグ&ドロップで移動している画面です。

実行結果
実行結果

次のページ
コンテキスト・メニューの表示

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

「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」など、さまざまなカンファレンスを企画・運営しています。

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

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

メールバックナンバー