Sys.Extended.UI.ModalPopupBehaviorがnullになる件
ASP.NET Ajaxネタですが、ネットで同じように困った方が見つからず、海外サイトでようやく回避策を見つけたので備忘として載せておきます。
というか、これだけ日本語のサイトが出てこないと、正直私が何か間違っているのか???と不安になります・・・。
もし誰か、何かお気づきあれば、教えて下さい・・・。
マスターページにToolkitScriptManagerを配置したコンテンツページ上でModalPopupExtenderを配置したサイトです。
ModalPopupExtenderのプロパティは以下のように設定しています。
●asp:ModalPopupExtender
プロパティ | 値 |
ID | MordalCalendar |
Drag | True |
Enabled | True |
TargetControlID | btnCalendar |
PopupControlID | pnlCalendar1 |
PopupDragHandleControlID | pnlCalendar2 |
BehaviorID | MordalCalendar |
<asp:Panel ID="pnlCalendar1" runat="server"> <asp:Panel ID="pnlCalendar2" runat="server"> <iframe id="iCalendar" runat="server" class="iCalendar"></iframe> </asp:Panel> </asp:Panel>
で、実行すると、以下のエラーが表示されて正しく画面が表示されません(ajaxがおかしくなる)。
AjaxControlToolkit.ModalPopupExtender missing required PopupControlID property value
sys.extended.ui.modalpopupbehavior undefined
つまり、Sys.Extended.UI.ModalPopupBehaviorがnullになっているわけです。
なぜそのような状況になるのかは今をもって不明ですが、以下で回避することができます。
ToolkitScriptManagerコントロールのCombineScriptsプロパティを「True」から「False」へ変更する
CombineScriptsプロパティはAjaxに関わる重複するJavaScriptファイルをダウンロードしない機能ですが、それが有効になっているとJavaScriptをまとめることが出来るので、通信の効率化になるようです。ただ、作成しているWEBアプリケーションではほとんど影響ないようでしたので、今回はこれを無効化することで回避しました。