none
ASP.NET AJAX Control Toolkit15.1(Nugetだと8.0)の設定について教えてください。 RRS feed

  • 質問

  • 環境: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.のエラーはデザイナーに表示されますが、実行すると問題無く動作します。。

    何が問題なのか切り分けることが出来ないため、何か情報をお持ちであれば教えてください。

    よろしくお願いします。

    2015年4月11日 8:00

回答

  • 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 を使ってください。


    2015年4月11日 9:21

すべての返信

  • 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 を使ってください。


    2015年4月11日 9:21
  • 返信ありがとうございます。

    v15.1からScriptManagerだけで良い、と書いてました。。

    お手数かけすみませんでしたー。

    2015年4月11日 10:24
  • > 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 スペルミス訂正
    2015年4月11日 10:57
  • 返信遅くなりすみません。

    エラーの原因はScriptManagerが無かったことです。(コントロールを追加したフォームにScriptManagerを追加しました。

    現在IE上に問題無くコントロールが描画されます。

    しかし、デザイナー上では相変わらず【コントロールを描画中にエラーが発生しました。値をNullにすることはできません。パラメーター名:stream】が出ていますが、特に支障がないので気にしないことにしました。(サンプルソリューションでも同様なので...)


    2015年4月11日 22:06
  • > エラーの原因は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.aspx

    Version 15.1 でも日本語に対応していなければ、ComboboxExtender を使うのは諦めて AutoCompleteExtender に変更するとか、jQuery UI の Autocomplete(URL 下記)の中から目的に合う適当なものを探した方がいいかもしれません。

    Autocomplete
    http://jqueryui.com/autocomplete/

    2015年4月12日 1:12
  • ASP.NETは2週間前から触り始めたので全く知りませんでした。。

    こちらこそ情報ありがとうございます!

    色々調べてみます!!

    2015年4月12日 9:49