SHOEISHA iD

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

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

渋谷テクニカルナイト講師陣が語る新技術動向

Dojo ToolkitのDataGridを使いこなす

渋谷テクニカルナイト講師陣が語る新技術動向 第2回

  • X ポスト
  • このエントリーをはてなブックマークに追加

データの並べ替え

 DataGridでは、標準で行の並べ替え(ソート)がサポートされています。各カラムのヘッダをクリックすると、そのカラムのデータで昇順、降順での並べ替えを指定できます。次の図は、メールアドレスのカラムでソートした結果です。

 DataGridのカラムをエンド ユーザーの好みに応じて並べ替えられるようにするには、DataGridにcolumnReordering="true"属性を指定します。これによって、ドラッグ&ドロップでカラムの並び順を変更できるようになります。例えば、下の図では、生年月日のカラムをドラッグ&ドロップして、メールアドレスのカラムと順番を入れ替えています。

 また、カラムの表示、非表示を切り替えるためのポップアップ メニューの作成もサポートされていますので、さまざまなエンド ユーザーによるカスタマイズ機能を実現することができます。

データの編集

 ここまでDataGridの表示のカスタマイズに関する機能を紹介してきましたが、DataGridではデータの編集機能もサポートされています。ビュー定義のeditableプロパティにtrueを指定することで、カラム単位のテキストボックスによる編集が可能になります。また、defaultCellプロパティにeditableを指定して、すべてのカラムを編集可能にすることもできます。通常はセルをダブルクリックするなどして、特定のセルが編集状態になりますが、DataGridにsingleClickEdit="true"属性を指定すれば、シングル クリックで編集状態にする動作が実現できます。

 特に指定しない場合は、編集状態になるとテキストボックスがセル上に表示されますが、typeプロパティで、チェック ボックス、コンボボックス、さらには、カレンダー入力(DateTextBox)などの編集用コンポーネントを指定できます。以下の例では、birthDate用にDateTextBox、group用にコンボボックスを指定しています。なお、DateTextBoxなどのウィジェットを利用した編集用コンポーネントを使用するには、"dojox.grid.cells.dijit"モジュールを読み込む必要があります(太字部分参照)。

dojo.require("dojox.grid.cells.dijit");

var myDataGridStructure = [
    {defaultCell: {editable: true}, cells: [
        {name: "画像", field: "photo", width: "40px",
            formatter: myImageFormatter},
        {name: "名前", field: "name", width: "auto"},
        {name: "メールアドレス", field: "email", width: "auto"},
        {name: "生年月日", field: "birthDate", width: "auto",
            formatter: myDateFormatter,
            type: dojox.grid.cells.DateTextBox},
        {name: "グループ", field: "group", width: "50px",
            formatter: myGroupFormatter,
            type: dojox.grid.cells.Select,
            options: ["", "家族", "友人", "会社"],
            values: [0, 1, 2, 3], returnIndex: 1}
    ]}
];

 生年月日のセルをクリックすると、カレンダー入力が、グループのセルをクリックすると、コンボボックスからの選択による編集ができるようになります。

 編集用コンポーネントには、あらかじめ提供されているもの以外にも、formatter同様、アプリケーション独自の編集用コンポーネントを実装して、指定することができます。

次のページ
データの追加と削除

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

  • X ポスト
  • このエントリーをはてなブックマークに追加
渋谷テクニカルナイト講師陣が語る新技術動向連載記事一覧

もっと読む

この記事の著者

野口 雅人(ノグチ マサト)

日本アイ・ビー・エム株式会社 ソフトウェア開発研究所 シニア・テクニカ ル・スタッフ・メンバー1990年、日本IBM入社。ホームページ・ビルダー、Rational Application Developer などの製品開発に従事。現在はWeb 2.0/RIA関連のソフトウェア開発を担当。

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

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

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3486 2009/02/04 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング