SHOEISHA iD

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

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

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

使ってみようASP.NET AJAX Control Toolkit

使ってみようASP.NET AJAX Control Toolkit(入力補助コントロール編2)

ASP.NET AJAX Control Toolkitの利用方法を学習する 後編


HoverMenuExtenderコントロール

 HoverMenuExtenderコントロールは、マウスが対象のコントロール上にある時、UIメニューがコントロールの隣りに浮き上がる機能を付加するエクステンダコントロールです。今回は利用していませんが、GridViewコントロールをHoverMenuExtenderコントロールで拡張することで、[EDIT][DELETE]などのボタン部分をホバーメニュー化させることも可能となります。PopupControlExtenderコントロールと似ていますが、クリックしなくてもコントロールを表示させられるのが特徴と言えます。

表11
プロパティ名 概要
PopupControlID ホバーさせるメニューコントロールIDを設定。
TargetControlID ホバーメニューコントロールのトリガーとなるコントロールIDを設定。
HoverCssClass ホバーメニューが表示されている間のトリガーコントロールのCSSを設定。
PopupPostion ホバーメニューのポップアップ位置を上下左右、TargetControl上の5つから設定。
PopDelay マウスがTargetControlから外れた際にホバーメニューが消えるまでの時間をミリセカンドで設定。デフォルトは100。

 リンクボタン上にマウスがある時に、いくつかのコントロールを含んだパネルをホバーさせるには、次のように設定します。

HoverMenuExtender.aspx(一部)
<asp:LinkButton ID="LinkButton1" runat="server"
Text="これはリンクボタン">
</asp:LinkButton><br /> <asp:Panel ID="HoverPanel1" CssClass="HoverPanel" runat="server"
Height="50px" Width="200px">
<asp:LinkButton ID="LinkButton2" runat="server"
Text="これもリンクボタン" PostBackUrl="~/Default.aspx" />
<br /> <asp:Button ID="Button1" runat="server" Text="これはボタン"/> </asp:Panel> <ajaxToolkit:HoverMenuExtender ID="HoverMenuExtender1" runat="server"
TargetControlID="LinkButton1" PopupControlID="HoverPanel1"
PopupPosition="Bottom" HoverCssClass="pophover" PopDelay="1000" />

 サンプルを実行すると図28~29のようになります(ダウンロードサンプルのファイルは「/HoverMenuExtender/HoverMenuExtender.aspx」です)。

図28 サンプル実行直後の画面
図28 サンプル実行直後の画面
図29 ホバーメニューが表示された画面
図29 ホバーメニューが表示された画面

CalendarExtenderコントロール

 CalendarExtenderコントロールは、テキストボックスに付与することができるAJAX機能付きのカレンダーコントロールです。ExtenderですのでTargetControlIDプロパティを設定しますが、対象のプロパティではなく、自身のプロパティ内に設定すべきプロパティを設定します。日付をクリックする際にカレンダーのヘッダー部分を選択することで月>年と設定の範囲を広げていくことが可能です。選択した日付を自動的にテキストボックスに表示することも可能です。このCalendareExtenderコントロールはローカライゼーション対応されたコントロールの1つで、ScriptManagerコントロールのEnableScriptGlobalizationプロパティとEnableScriptLocalizationをTrueに設定すると、一部を日本語で表示することも可能です。しかし、現時点では実行画像を見てもらうと分かるように、完全な日本語表示にはならない点に注意が必要です。

表12
プロパティ名 概要
CssClass カレンダーに適応するCSSを設定。
Format テキストに反映されるフォーマットを設定。
PopupButtonID ボタンやイメージなどをトリガーにカレンダーをポップアップさせる時のIDを設定。ただしTargetControlIDの設定も必要。
TargetControlID カレンダーをポップアップさせる「TextBoxコントロール」のIDを設定。

 テキストボックスにフォーカスがある状態でカレンダーをポップアップさせて、選択した日付をdd MMMM yyyyの型で表示させるには、次のように設定します。

CalendarExtender.aspx(一部)
<ajaxToolkit:CalendarExtender ID="CalendarExtender1"
runat="server" Format="dd MMMM yyyy" TargetControlID="TextBox1" />

 サンプルを実行すると図30~32のようになります(ダウンロードサンプルのファイルは「/CalendarExtender/CalendarExtender.aspx」です)。

図30 サンプル実行直後の画面
図30 サンプル実行直後の画面
図31 上のテキストボックスにフォーカスをあててカレンダーをポップアップさせた画面
図31 上のテキストボックスにフォーカスをあててカレンダーをポップアップさせた画面
図32 それぞれのテキストボックスに値が反映された画面
図32 それぞれのテキストボックスに値が反映された画面

まとめ

 前回と今回で、Control Toolkitの中で使用頻度が高いと思われる入力ページ補助コントロールについて解説してきました。実際に触れてみると、非常に簡単に設定できるコントロールがあることが分かっていただけたかと思います(もちろん少し大変なコントロールも)。Microsoftからの正式なサポートが得られない以上、なかなかプロジェクトに組み込みづらいControl Toolkitですが、個々のコントロールの完成度は非常に高く、カスタマイズも可能となっていますので、本記事を参考にぜひプロジェクトに組み込んでいただければ幸いです。

参考資料

  1. ASP.NET AJAX(公式ページ:英語)
  2. ASP.NET AJAX Control Toolkit(ドキュメント:英語)

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

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
使ってみようASP.NET AJAX Control Toolkit連載記事一覧
この記事の著者

山田 祥寛(ヤマダ ヨシヒロ)

静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数

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

WINGSプロジェクト ナオキ(ナオキ)

WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/1379 2008/08/19 19:20

イベント

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

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

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

メールバックナンバー