🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

Q&A

解決済

1回答

7484閲覧

新しいASP環境で、旧環境で動作していたCalenderExtenderが動作しない

M25605301621

総合スコア9

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

ASP.NET

ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

0グッド

0クリップ

投稿2020/12/03 08:20

ASP.NETのWEBアプリケーションを旧環境から
新環境に移す作業を行っています。

ToolkitScriptManagerで動作するはずの
CalenderExtenderが動作しない現象に苦戦しています。
初期状態では非表示のカレンダーコントロールが表示されたまま、カレンダーとして動作しない状態です。

■targetFrameworkは旧環境4.0、新環境4.6です。

■Binフォルダ内のファイルは旧環境から一式コピーしています。
(AjaxControlToolkit.dll、「ar」「cs」等のフォルダ群)

■aspxでの該当コントロールの記述は下記の通りです。旧環境のソースから変更はありません。

<ajaxtoolkit:toolkitscriptmanager ID="ToolkitScriptManager1" runat="server"> </ajaxtoolkit:toolkitscriptmanager>

  (略)
<asp:TextBox ID="textbox_sample" style="ime-mode:disabled" runat="server" MaxLength="20" TabIndex="2" Width="100px">
</asp:TextBox>

<ajaxToolkit:CalendarExtender ID="MyCalendarExtender" runat="server" TargetControlID="textbox_sample" DaysModeTitleFormat="yyyy/MM/dd" TodaysDateFormat="yyyy/MM/dd" Format="yyyy/MM/dd" > </ajaxToolkit:CalendarExtender>

■web.configの記述には下記一文含めています。
<add tagPrefix="ajaxToolkit" namespace="AjaxControlToolkit" assembly="AjaxControlToolkit"/>

■F12で下記エラーメッセージが表示されています。
requires ASP.NET Ajax 4.0 scripts. Ensure the correct version of the scripts are referenced. If you are using an ASP.NET ScriptManager, switch to the ToolkitScriptManager in AjaxControlToolkit.dll.

何卒宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/12/03 08:54

Ajax Control Toolkit のバージョンは何ですか? どこからどのように入手してどのようにインストールしたのですか?
M25605301621

2020/12/03 10:10

Visual Studio 2017のツールボックスにはAjaxControlToolkit v18.1が入っています。 いますが、今回の移行とは別にVisual Studio 2017にインストールしたものです。 今試しにCalenderExtenderをaspxのコードエリアにドラッグ&ドロップしましたが追加されません。 Webサイトごとにインストールするものなのでしょうか…
退会済みユーザー

退会済みユーザー

2020/12/04 03:58

質問者さん、無言ですが、回答したのでそれに対するフィードバックを書いてください。役に立った/立たなかったぐらいはすぐ返せるのでは? 役に立たなかったならどこがダメだったか書いてもらえると別の案も出てくるかもしれません。とにかく無言は NG です。
退会済みユーザー

退会済みユーザー

2020/12/04 04:59

回答に対するフィードバックは回答欄の下にコメントらんがありますのでそこに書いていただくようお願いします。
guest

回答1

0

ベストアンサー

ASP.NET 4.5 以降、Ajax Control Toolkit v15.1 以降では設定の仕方が違います。古いバージョンと同じような設定だからうまくいかないのでは?

ASP.NET 4.5 以降、クライアントスクリプトを利用するサーバーコントロールが正しく機能するには、必要なクライアントスクリプトの ScriptManager への登録と、全ページでの ScriptManager の配置が必要です。詳しくは以下の記事を見てください。

ASP.NET 4.5 ScriptManager
http://surferonwww.info/BlogEngine/post/2018/04/23/aspnet-45-scriptmanager.aspx

Ajax Control Toolkit v15.1 以降では ToolkitScriptManager ではなく ScriptManager を使います(v15.1 以降 ToolkitScriptManager は提供されていません)。そのための設定は以下の記事を見てください。

Ajax Control Toolkit スクリプト バンドル
http://surferonwww.info/BlogEngine/post/2018/06/10/bundling-script-and-css-files-on-ajax-control-toolkit.aspx

投稿2020/12/03 11:36

編集2020/12/03 11:46
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

M25605301621

2020/12/04 05:05

情報ありがとうございます。 また、返信滞っており失礼いたしました。 テンプレートで作成したSite.masterには下記コードがあり、 然るべき場所にjsファイルが存在していることも確認できました。 <asp:ScriptManager runat="server"> <Scripts> <%--To learn more about bundling scripts in ScriptManager see https://go.microsoft.com/fwlink/?LinkID=301884 --%> <%--Framework Scripts--%> <asp:ScriptReference Name="MsAjaxBundle" /> <asp:ScriptReference Name="jquery" /> <asp:ScriptReference Name="bootstrap" /> <asp:ScriptReference Name="WebForms.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebForms.js" /> <asp:ScriptReference Name="WebUIValidation.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebUIValidation.js" /> <asp:ScriptReference Name="MenuStandards.js" Assembly="System.Web" Path="~/Scripts/WebForms/MenuStandards.js" /> <asp:ScriptReference Name="GridView.js" Assembly="System.Web" Path="~/Scripts/WebForms/GridView.js" /> <asp:ScriptReference Name="DetailsView.js" Assembly="System.Web" Path="~/Scripts/WebForms/DetailsView.js" /> <asp:ScriptReference Name="TreeView.js" Assembly="System.Web" Path="~/Scripts/WebForms/TreeView.js" /> <asp:ScriptReference Name="WebParts.js" Assembly="System.Web" Path="~/Scripts/WebForms/WebParts.js" /> <asp:ScriptReference Name="Focus.js" Assembly="System.Web" Path="~/Scripts/WebForms/Focus.js" /> <asp:ScriptReference Name="WebFormsBundle" /> <%--Site Scripts--%> </Scripts> </asp:ScriptManager> まずは移行対象のaspxよりも優先して、 サイト作成時に自動で作成されるaspxページ(Login.aspx) でカレンダーコントロールが稼働するように考えています。 Ajax Control Toolkit のインストールを試行していますが、下記エラーから進めていません。 VS2017の[ツール]→[NuGetパッケージマネージャー]→[ソリューションのNuGetパッケージの管理] からAjax Control Toolkitインスト―ルを試みるもエラー U:\wwwroot\Login.aspx: ASP.NET のランタイム エラーです: アプリケーション レベルを超えて allowDefinition='MachineToApplication' として登録されているセクションを使うことはできません。 このエラーは、仮想ディレクトリが IIS でアプリケーションとして構成されなかった場合に発生します。 (U:\wwwroot\web.config line 25) U: U:\wwwroot\Login.aspx 25
退会済みユーザー

退会済みユーザー

2020/12/04 05:20

既存のソリューション/プロジェクトに NuGet で Ajax Control Toolkit をインストールしているのですか? そうだとすると、既存の何かとバッティングして問題が出ているのでは? ゼロからまっさらなソリューション/プロジェクトを Visual Studio のテンプレートで作って(ただし、空ではなくて Master に ScriptManager の設定が含まれるもの)、何も手を加えないまま、紹介した記事 http://surferonwww.info/BlogEngine/post/2018/06/10/bundling-script-and-css-files-on-ajax-control-toolkit.aspx のとおり Ajax Control Toolkit をインストールしてみることをお勧めします。 それでも問題が出たら、紹介した記事のどこで問題が出たか詳しく書いてください。
M25605301621

2020/12/04 05:36

回答ありがとうございます。 ローカルPCにまっさらなASP.NET Webアプリケーションのソリューションを作成するところから試してみます。
M25605301621

2020/12/04 09:32

(経過) ・ローカルPCにまっさらなASP.NET Webアプリケーションのソリューションを作成 ・NuGetでAjaxControlToolkit v20.1.00をインストール ・ツールボックスにAjaxControlToolkit.dllを読み込んで ・TextBoxとCalenderExtenderを追加し、カレンダー動作確認 上記まで確認しました。 ・NuGetでAjaxControlToolkit.StaticResourcesをインストールしたところ、 CalenderExtenderの背景色が透明になり、CSS設定が解除されたような表示になりました。 お伝えできていなかった前提として、WEBサーバーにVPNで接続し、ネットワークドライブ化した C:\inetpub\wwwrootの領域にVPN接続したPCのVisualStudioからWebアプリケーションのソリューションを作成していました。 サーバー本体にVisualStudioを入れ、そちらのNuGetからAjaxControlToolkit をインストールしてみます。12/07以降、経過を書いていきます。
退会済みユーザー

退会済みユーザー

2020/12/06 03:06 編集

Web Forms アプリと理解していますが、それの作り方には「Web サイトプロジェクト」と「Web アプリケーションプロジェクト」の 2 つがあります。どちらですか? 紹介した記事は「Web サイトプロジェクト」です。紹介した記事 http://surferonwww.info/BlogEngine/post/2018/06/10/bundling-script-and-css-files-on-ajax-control-toolkit.aspx に書いてある範囲のことはほとんど違いはないですが、念のため。
退会済みユーザー

退会済みユーザー

2020/12/06 00:44

> NuGetでAjaxControlToolkit.StaticResourcesをインストールしたところ、 CalenderExtenderの背景色が透明になり、CSS設定が解除されたような表示になりました。 紹介した記事にも書きましたが、.css ファイルは、DevExpress の記事に従って Styles.Render をページの適当な場所に追加する必要があります。そうすれば.css ファイルを参照する link 要素がレンダリングされます。
M25605301621

2020/12/08 12:49

着手が遅くなり、またいただいていた質問に回答できず失礼いたしました。 下記①-⑤の手順で、CalenderExtenderやUpdatePanelを含むAjax要素が新環境で動作することを確認できました。 ①WEBサーバーにインストールしたVisualStudio2019から新規ソリューション(Webアプリケーションプロジェクト)を作成 ②新規ソリューションにNuGetでAjaxControlToolkit v20.1.00をインストール、ToolboxへのAjaxControlToolkit.dllの読込み ③自動で生成されるDefault.aspxにCalenderExtenderを追加し、動作確認 ④移行対象aspxの一部を①のプロジェクトフォルダ内にコピー ⑤移行対象aspx内の ToolkitScriptManagerをScriptManagerに置換 今のところAjaxControlToolkit.StaticResourcesをインストールしていなくても動作しているように見えるので、ここからWebアプリケーションとして動くよう移行を進めていきます。 貴重な情報、助言をいただきありがとうございます。精進します
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問