読者です 読者をやめる 読者になる 読者になる

ASP.NET AJAX Control Toolkitのスクリプトファイルを調べる方法

ASP.NET Ajax

久々のASP.NET AJAXネタ。しかも取り留めも無く書くのでメモ程度にとらえて下さい。需要があるかないかで言うと…これだけ見ると無さそう。もう暫くすれば多少日の目を浴びるかな(;´ρ`)


殆どの方はサーバーコントロールをバリバリ使ってそうなんですが、AJAX Control ToolkitのScriptのみのファイルも公開されているので、場合によってはScriptファイルだけで機能を利用したい人がいるかも?そんな時は、サーバーコントロールを貼り付けてソースを見ればいいじゃない!!!と思っていたんですが、甘い考えでした。ScriptManager、ToolkitScriptManagerは被っているScriptファイルを纏めてくれるので(CompositeScriptファイルとして生成)、纏めたScriptが降ってきます。つまり、元のScriptファイルの形ではなくなってしまう。


ではどうやって調べればいいか?答えは身近な所にあって、ソース全込版をダウンロードしてExtender.csファイル側ではなく"エクステンダコントロール.debug.js"をチェックすればOK。
こちらは、エクステンダコントロールを生成する時に必要なスクリプトファイルの参照が記述されているので、それらをページ内に追加してあげればエクステンダコントロールを利用する準備は完了。

例。
/// <reference name="MicrosoftAjax.debug.js" />
/// <reference name="MicrosoftAjaxTimer.debug.js" />
/// <reference name="MicrosoftAjaxWebForms.debug.js" />
/// <reference path="../ExtenderBase/BaseScripts.js" />
/// <reference path="../Common/Common.js" />
/// <reference path="../Common/DateTime.js" />
/// <reference path="../Common/Threading.js" />
/// <reference path="../Compat/Timer/Timer.js" />
/// <reference path="../Animation/Animations.js" />
/// <reference path="../Animation/AnimationBehavior.js" />
/// <reference path="../PopupExtender/PopupBehavior.js" />



続いて、エクステンダコントロールの機能だけを利用する方法。これはちょっとめんどくさい感じ。
でも、Tips的な感じでいいのであればあっさり行くかな。
WebForm上で利用したいAJAX Control Toolkitを貼り付けて、実行!
多分、初期化の所でこんな記述がされてます。

例
        function appInit() 
        {
            $create(AjaxControlToolkit.CalendarBehavior
          , null, null, null, $get('拡張したい要素ID'));
        }   

そう。$create使ってAJAX Control Toolkitはインスタンス化されています。これさえ分かれば、後は第一パラメタに必要なプロパティを設定したり、拡張したい要素を設定したりすれば、AJAX Control Toolkitの機能を利用できますよ。


多分ちょっとめんどくさいのはCascadingDropDownコントロールかな(サービスとやり取り)。この辺りは、実際にWebサービス一個作って、Microsoft AJAX Libraryのサービスプロキシを利用すれば行けるんじゃないかな(試してないので予想)。


利用はできるのは既に検証してわかっているんですが、CSS周りがちょっと苦戦中なので解決次第もう一個にも載せる予定。