最後にCalendarで選択された日付をSPREADに設定する1.CalendarのSelectionChangedイベントでSPREADに値を設定するそれでは次にCalendarで選択した日付をSPREADに設定する処理を追加しましょう。これにはCalendarのSelectionChangedイベントを使用します。次のコードをWebフォームのソースコード「Default.aspx.vb」に追加します。false;}注意OnInitメソッドは既に記述されたものがある場合、イベントの登録部分のみを追記してください。2.テストWebサイトを実行してみましょう。カレンダーのアイコンをクリックして日付を選択します。選択した日付がセルに設定されます。その他ここまででポップアップカレンダーの主要な機能を実装しました。ポップアップカレンダーがSPREADから大きく外れた位置に表示される(クリックしたセルの上に表示されないと困る)。これからこの問題に対処していきます。1.Calendarをクリックした位置に表示するイメージ型セル「MyCal」を作成した際、クリックイベントをクライアント側でも処理できるようJavaScriptでclickedCalCellメソッドを追加しました。このメソッドを使用します。clickedCalCellメソッドではevent引数からクリック位置を取得できます。Calendarをこの位置に表示すれば問題を解決できます。Calendarを指定した位置(絶対位置)に表示できるよう、CalendarのStyleプロパティを次のように変更します。Webフォーム「Default.aspx」のHTMLソースを開いて直接HTMLを編集します。Styleプロパティが存在しない場合は、新しく追加します。z-index:10000;background-color:White">そして、JavaScriptにopenCalメソッドを追加します。</script>ButtonCommandイベントでカレンダーを表示した直後、このopenCalメソッドを実行してカレンダーを正しい位置に表示します。AJAXのScriptManager.RegisterStartupScriptメソッドを使用します。次のスクリプトをWebフォームのソースコード「Default.aspx.vb」のButtonCommandイベントに追加します。true);この処理を追加したButtonCommandイベントの全文は次のようになります。}}また、この処理はユーザーがカレンダーの次の月をクリックした時にも必要です。CalendarのVisibleMonthChangedイベントにも同じ処理を追加します。次のコードをWebフォームのソースコード「Default.aspx.vb」に追加します。OnInitメソッドは既に記述されたものがある場合、イベントの登録部分のみを追記してください。true);}2.テストWebサイトを実行してみましょう。日付をクリックした時、カレンダーはクリックした位置に表示されます。次の月へ移動した場合も、カレンダーは正しい位置に表示されます。3.完成これでサンプルアプリケーションは完成です。マシンにFirefoxがインストールされていれば、FirefoxでWebサイトを実行してみてください。WebサイトがIEと同様にFirefoxでも動作することを確認できます。AJAXとSPREADを使用することで、SPREADとSPREAD以外のコントロールとを連携したより広範な処理にAJAXを活用することができます。AJAXのそれぞれが適所で活用され、今までにないレベルの対話性、レスポンスを実現したWebアプリケーションを作ることで、ユーザビリティの高いWebサービスを提供できるのではないでしょうか。<1234連載通知を行うには会員登録(無料)が必要です。会員の方はログインを行ってください。印刷用を表示ブックマークツイート著者プロフィールグレープシティ株式会社(グレープシティカブシキガイシャ)宮城県仙台市に本社を構えるグレープシティでは、日本の業務に適したシステムをより早く開発するためのソフトウェアを提供しています。エンドユーザーの利用しやすさ、幅広いユーザー環境への対応、そして何よりプログラマの作業を軽減することを一番に目指しています。圧縮・解凍UNIX基本講座@CodeZine『CodeZine(コードジン)』の公式アカウントです。【NEW】デブスト2019デブサミ2019福岡・関西デブサミ2019夏デブスト関西デブサミ2019×ログインEメールパスワード※旧SEメンバーシップ会員の方は、同じ登録情報(Eメール&パスワード)でログインいただけます。イラストの無断転載を禁じます。記載されているロゴ、システム名、製品名は各社及び商標権者の登録商標あるいは商標です。