トップ回答者
ASP.NET AJAX Control Toolkit15.1(Nugetだと8.0)の設定について教えてください。

質問
-
環境:Windouws8.1 IDE:VisualStudio2013Pro
現在、Webアプリを開発したく首記、ASP.NET AJAX Control Toolkit15.1をインストールしたのですが、うまく設定出来ずにいます。
経緯---------
1.NugetにてAJAX Control Toolkit 8.0.0.0をインストールするも、ツールボックスにツールが現れない。
2.CodePlexからインストーラーをダウンロードしインストール実施 -> ツールボックスにAjaxControlToolkit.15.1タブが現れ各ツールも表示される。
3.試しにComboBoxをWebFormにドラッグドロップするも
「コントロールを描画中にエラーが発生しました。値をNullにすることはできません。パラメーター名:stream」がコントロールの場所に表示される。
4.とりあえずビルドは問題無い。しかし実行させてみると
'/' アプリケーションでサーバー エラーが発生しました。
A ScriptManager is required on the page to use ASP.NET AJAX Script Components.
説明: 現在の Web 要求を実行中に、ハンドルされていない例外が発生しました。エラーに関する詳細および例外の発生場所については、スタック トレースを参照してください。
例外の詳細: System.Web.HttpException: A ScriptManager is required on the page to use ASP.NET AJAX Script Components.
ソース エラー:現在の Web 要求の実行中にハンドルされていない例外が生成されました。障害の原因および発生場所に関する情報については、下の例外スタック トレースを使って確認できます。
スタック トレース:[HttpException (0x80004005): A ScriptManager is required on the page to use ASP.NET AJAX Script Components.] AjaxControlToolkit.ComboBox.get_ScriptManager() +207 AjaxControlToolkit.ComboBox.OnPreRender(EventArgs e) +69 System.Web.UI.Control.PreRenderRecursiveInternal() +83 System.Web.UI.Control.PreRenderRecursiveInternal() +155 System.Web.UI.Control.PreRenderRecursiveInternal() +155 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +974
バージョン情報: Microsoft .NET Framework バージョン:4.0.30319; ASP.NET バージョン:4.0.30319.34212とエラーが出てしまいます。
試した事------------
1.ASP.NET AJAX Control Toolkitのサンプルを参考にWeb.configを修正 -> 現象変わらず
2..net4.5ターゲットから、サンプルが.net4.0をターゲットにしていたので同じに合わせる -> 現象変わらず
※C:\Users\Public\Documents\ASP.NET AJAX Control Toolkit v15.1\SampleSiteにあるサンプルを実行させると
経緯3.のエラーはデザイナーに表示されますが、実行すると問題無く動作します。。
何が問題なのか切り分けることが出来ないため、何か情報をお持ちであれば教えてください。
よろしくお願いします。
回答
-
Version 15.1 は触ったこともないのでハズレかもしれませんが、その前の Version 7.1213 と同じであれば・・・
> A ScriptManager is required on the page to use ASP.NET AJAX Script Components.
とエラーメッセージに書いてある通りではないのですか?
ツールボックスの中に ToolkitScriptManager というのがあるはずですので、それをドラッグ&ドロップしてみてください。
Ajax Control Toolkit を使う場合は ToolkitScriptManager が必須です(少なくとも Version 7.1213 はそうです。変わってはいないと思います)。
ちなみに、ASP.NET Ajax Extensions の UpdatePanel, UpdateProgress などを使うときは ScriptManager で良いですが、Ajax Control Toolkit のサーバーコンロトールを使う場合は必ず ToolkitScriptManager を使ってください。
- 編集済み SurferOnWww 2015年4月11日 9:24 一部訂正
- 回答としてマーク junjunjunjunjunjun 2015年4月11日 10:22
すべての返信
-
Version 15.1 は触ったこともないのでハズレかもしれませんが、その前の Version 7.1213 と同じであれば・・・
> A ScriptManager is required on the page to use ASP.NET AJAX Script Components.
とエラーメッセージに書いてある通りではないのですか?
ツールボックスの中に ToolkitScriptManager というのがあるはずですので、それをドラッグ&ドロップしてみてください。
Ajax Control Toolkit を使う場合は ToolkitScriptManager が必須です(少なくとも Version 7.1213 はそうです。変わってはいないと思います)。
ちなみに、ASP.NET Ajax Extensions の UpdatePanel, UpdateProgress などを使うときは ScriptManager で良いですが、Ajax Control Toolkit のサーバーコンロトールを使う場合は必ず ToolkitScriptManager を使ってください。
- 編集済み SurferOnWww 2015年4月11日 9:24 一部訂正
- 回答としてマーク junjunjunjunjunjun 2015年4月11日 10:22
-
> v15.1からScriptManagerだけで良い、と書いてました。
そのようですね。いま Documentation ↓ を読んでみました。
ToolkitScriptManager Removed in v15.1
https://ajaxcontroltoolkit.codeplex.com/wikipage?title=ToolkitScriptManager%20Removed%20in%20v15.1%2c%20Use%20ScriptManagerそれで結局エラーの原因は ScriptManager がページに配置されなかったということだったのでしょうか?
Documentation によると "Visual Studio ASP.NET templates contain ScriptManager on the master page by default." とのことですが・・・
- 編集済み SurferOnWww 2015年4月11日 10:58 スペルミス訂正
-
返信遅くなりすみません。
エラーの原因はScriptManagerが無かったことです。(コントロールを追加したフォームにScriptManagerを追加しました。)
現在IE上に問題無くコントロールが描画されます。
しかし、デザイナー上では相変わらず【コントロールを描画中にエラーが発生しました。値をNullにすることはできません。パラメーター名:stream】が出ていますが、特に支障がないので気にしないことにしました。(サンプルソリューションでも同様なので...)
- 編集済み junjunjunjunjunjun 2015年4月11日 22:11 追記
-
> エラーの原因はScriptManagerが無かったことです。
わかりました。情報提供をありがとうございました。
以下、ご存知かもしれませんが・・・Version 15.1 で改善されたかもしれませんが、Ajax Control Toolkit の ComboboxExtender は、その前の Version 7.1213 までは日本語に対応してなかったのでご注意ください。
JavaScript の問題で、IME モードが ON のときは onkeypress イベントが発生しないのに対応していなかったからです。詳しくは、興味がありましたら、下記の記事を見てください。
ACT ComboBox の日本語対応
http://surferonwww.info/BlogEngine/post/2012/03/18/Enabling-Japanese-handling-in-ComboBox-of-AJAX-Control-Toolkit.aspxVersion 15.1 でも日本語に対応していなければ、ComboboxExtender を使うのは諦めて AutoCompleteExtender に変更するとか、jQuery UI の Autocomplete(URL 下記)の中から目的に合う適当なものを探した方がいいかもしれません。
Autocomplete
http://jqueryui.com/autocomplete/