SHOEISHA iD

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

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

Infragistics NetAdvantageチュートリアル(AD)

パワフルRIAを実現する「NetAdvantage ASP.NET AJAX」コントロールスイートを使おう

WebDataMenuとWebDropDownの利用

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

WebDropDownを使う

コントロール概要

 データ入力や項目選択時に複数の項目をコンパクトに表示させるドロップダウン ボックスはGUIの始まりの時代から親しまれてきたUX(ユーザー エクスペリエンス) パターンですが、WebDropDownにはドロップダウンをさらに便利にする機能が組み込まれています。

図12 WebDropDownコントロール
図12 WebDropDownコントロール

WebDropDownの拡張機能

 WebDataMenuの項でとりあげたデータバインディングやテンプレート機能は ほぼすべてのNetAdvantage ASP.NETの各コントロールに共通して装備されている機能です。そのため、WebDropDownでのバインドの設定方法やテンプレートの構築方法はWebDataMenuの方法を流用することが可能です。

 WebDropDownには以下の拡張機能が搭載されています。

  • ページング機能
  • 自動フィルタ機能
  • 自動コンプリート機能

WebDropDownロードオンデマンドとページング機能

 ドロップダウンボックスは画面の広い領域を占領しないためよく使用されますが、標準でAjax化されているWebDropDownではロードオンデマンド機能が使用される(オン・オフ制御可能)ため、長いリストもユーザーがドロップダウンの内容をスクロールするにつれてオンデマンド読み込みされます。

 しかし、都道府県の選択や製品選択など、時としてドロップダウンにとてつもなく長いリストが表示されるときがあります。そんなときに役に立つのがページング機能です。

図13 ページング機能を有効にしたWebDropDown
図13 ページング機能を有効にしたWebDropDown

 大量のデータを扱うグリッドなどによくある機能ですが、ドロップダウン上使用することにより画面に長いリストを表示させずにユーザーはドロップダウンをナビゲートすることができます。

 使い方はEnablePagingプロパティとPageSizeプロパティを設定するだけです。

図14 EnablePagingとPageSizeプロパティ
図14 EnablePagingとPageSizeプロパティ

 その他、ページャーに表示されるリンクの詳細設定も可能です。

図15 PagerSettingsプロパティ
図15 PagerSettingsプロパティ

オートコンプリート機能と自動フィルタ

 たくさんのWebサイトで目にする検索機能は便利なものですが、検索結果表示のために画面が切り替わってしまったりして使いづらい場合もあります。GoogleやYouTubeでは検索条件の入力を補助してくれるオートコンプリート機能が提供されますが、WebDropDownでも似たような機能を使用することが可能です。

図16 WebDropDownのオートコンプリート機能
図16 WebDropDownのオートコンプリート機能

 オートコンプリート機能を追加するには、EnableAutoCompleteFirstMatchプロパティをTrueに設定するだけで、ユーザーが入力し始めると同時にドロップダウンリストから入力された部分的なテキストにマッチする項目がドロップダウンに表示されます。

図17 EnableAutoCompleteFirstMatchプロパティ
図17 EnableAutoCompleteFirstMatchプロパティ

 また、ユーザーの入力と同時にドロップダウンの内容をフィルタするオートフィルタリング機能は、オートコンプリート機能と同様、容易に設定をすることが可能です。

図18 WebDropDownオートフィルタリング機能の例
図18 WebDropDownオートフィルタリング機能の例

 オート フィルタリング機能を使用するにはまずEnableAutoFilteringプロパティを以下のうちのいずれかに設定します。フィルタリングは完全にAjax化されています。

  • Off――最初の一致を見つけ出す、選択する、アクティブ化する、スクロールすることだけが実行されます。
  • Client――ポストバックは一切発生することなく、クライアント側項目コレクションコンテンツのみでフィルタリングが実行されます。
  • Server――Ajaxコールバックを行うことによって、サーバーでドロップダウン リスト内のすべての項目でフィルタリングが実行されます。

 必要であれば、AutoFilterQueryTypeプロパティを以下のいずれかのオプションに設定することでフィルタ方法を指定することも可能です。

  • StartsWith
  • EndsWith
  • Contains
  • DoesNotContain
  • Equals
  • DoesNotEqual
図19 AutoFilterQueryTypeプロパティ
図19 AutoFilterQueryTypeプロパティ

 このように、WebDropDownではオートフィルタリングやオートコンプリート機能を簡単に使用することが可能なため、既存のドロップダウンボックスの使い勝手を手軽に向上することができると言えます。

WebDataMenuの項目に検索WebDropDownを埋め込む

 WebDataMenuのテンプレート構築の際に画像やラベルコントロールを配置しましたが、ASP.NET AJAXコントロールのテンプレートにはさらに他のコントロールを追加することも可能です。

 例として、先ほど作成したWebDataMenu中に項目として前項で作成したWebDropDownを埋め込むには、以下の手順で可能です。

 まずWebDataMenu新しいテンプレートを追加し、テンプレートの中身の編集を行います。テンプレートに先ほど作成したWebDropDownコントロールをドラッグして配置します(あるいは<Template></Template>タグ内にWebDropDownコントロールのタグ全体をコピー&ペーストします)。

図20 WebDataMenu項目内でWebDropDownを使用
図20 WebDataMenu項目内でWebDropDownを使用

 メニュー項目のサブメニューにこのテンプレートを設定し、ページを実行すると、「ヘルプ」項目クリック時に先ほどの検索用WebDropDownが表示されます。WebDropDownの機能は損なわれることなく使用することができます。

まとめ

 今回の記事ではNetAdvantage ASP.NET AJAXコントロールを使った画面構築の一例を紹介しました。さまざまな機能やデータに対応したメニューやドロップダウンボックスは Webアプリケーションに便利な機能を追加するのに手軽に活用できます。NetAdvantage ASP.NETに含まれるコントロールは他にもたくさんありますので、組み合わせることで非常に多くのシーンに対応することが可能と言えるでしょう。皆さまの普段のアプリケーションのユーザーエクスペリエンスを向上させる手段として、ぜひ試してみてはいかがでしょうか。

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

  • このエントリーをはてなブックマークに追加
Infragistics NetAdvantageチュートリアル連載記事一覧

もっと読む

この記事の著者

インフラジスティックス・ジャパン株式会社 鈴木 誠(スズキ マコト)

大学卒業後、ホノルルにてエンタープライズコンテンツ管理及び大手リゾートホテルや教育機関向けWeb開発を行う。その後、米海軍サプライ管理システムの開発に従事。.NETからJavaまで主にWebテクノロジーに関わる。筋トレの傍ら植物を育てるのが趣味。

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

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

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

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/4328 2009/09/08 16:00

おすすめ

アクセスランキング

アクセスランキング

イベント

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

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

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

メールバックナンバー

アクセスランキング

アクセスランキング