ようこそ Go!Go! ASP.NET へ ログイン | 登録 | ヘルプ

UpdatePanel コントロール上で利用できないコントロール

以前 UpdatePanel コントロール上でアップロード、ダウンロードの機能は利用する事が出来ない。と言う事を投稿しましたが、ASP.NET AJAX ドキュメンテーションの UpdatePanel Control Overview の中で記述されています。(ネタ元:開発技術大全でお馴染みの赤間さん)

 

UpdatePanel Control Overview

 

リンク先のページに飛んだ後、 Controls that Are Not Compatible with UpdatePanel Controls の項目を見てください。

以下の ASP.NET コントロールは、部分更新との互換性が無い為、 UpdatePanel コントロールの中でサポートされません。との事。

  • TreeView and Menu controls.
  • Web Parts controls. For more information, see ASP.NET Web Parts Pages.
  • FileUpload controls when they are used to upload files as part of an asynchronous postback.
  • GridView and DetailsView controls when their EnableSortingAndPagingCallbacks property is set to true. The default is false.
  • Login, PasswordRecovery, ChangePassword, and CreateUserWizard controls whose contents have not been converted to editable templates.
  • The Substitution control.
  • Validation controls, which includes the BaseCompareValidator, BaseValidator, CompareValidator, CustomValidator, RangeValidator, RegularExpressionValidator, RequiredFieldValidator, and ValidationSummary control.

対応策等も載っているので気になる方はドキュメントを読んでみましょう。該当のコントロールを見てみると、何となく JavaScript ライブラリ関係なのかなぁ?なんて思えてきますねぇ。

公開 2007年1月24日 13:42 投稿者 naoki

コメントの通知

この投稿にコメントが付いた場合にメールを受信するには、登録してください。ここ

また次のフィードから、お気に入りのRSSリーダーを使って最新の状態を知ることもできます。 コメントのRSSフィード

コメント

# re: UpdatePanel コントロール上で利用できないコントロール

2007年1月24日 15:44 by かるあ

前回のVSUGアカデミーの中でも UpdatePanel とASP.NET の Validater コントロール関連は同居できないので、AJAX 対応の Validater を使ってください。見たいな事が触れられていましたけれど同じことなんですかね。

# re: UpdatePanel コントロール上で利用できないコントロール

2007年1月24日 15:56 by naoki

まさにその通りです。

ちなみにAJAX対応のValidaterがどこにあるか知っていますか~?

# re: UpdatePanel コントロール上で利用できないコントロール

2007年1月25日 13:42 by mona.net

もし知ってたら教えていただきたいです。

AJAXを使い始め、UPDATEPANELの性能に驚いております。

たいていの事は小細工無しにできるようになり、すばらしいと思います。

 ただ、クライアントスクリプトをページに生成するような処理ができなくなり、困っております。

たとえば

   public static void ShowMessage(Page p, string message)

   {

       string msg = message.Replace("\r\n", "\n");

       msg = msg.Replace("\\", "\\\\");

       msg = msg.Replace("\n", "\\n");

       msg = msg.Replace("'", "\\'");

       string script = string.Format("<script>\n alert('{0}');</script>\n", msg);

       p.ClientScript.RegisterStartupScript(p.GetType(), p.GetHashCode().ToString(), script);

   }

こんな感じで、サーバ側のメッセージをalert表示するプログラムを作っていたのですが、動かなくなりました。

(当然ですが)

 サーバから、クライアント側に実行したいスクリプトを送ることは、AJAX上で可能でしょうか?

 JavaScritpからサーバ側を呼び出し、JavaScriptに戻る、という手もありますが、手間がかかるため避けたいです。

 ご存知でしたらご教授ください。

# re: UpdatePanel コントロール上で利用できないコントロール

2007年1月25日 14:01 by naoki

>mona.net さん

はじめまして。こんにちは。

投稿内に書いているように基本的にUpdatePanel内には小細工無しの状態のコントロールしか配置できないと考えた方が良さそうです。

結局の所 UpdatePanel が動作しない場合には大抵JavaScript ライブラリが利用されている事が多いようです。なので、サーバー側のメッセージを Alert で表示するようなプログラムも例外なく動作しないと言えると思います。

もしそういった機能を利用したいのであれば UpdatePanel 外に記述するのがベストだと思います。またスクリプト関係ならば、 ScriptManager(ScriptManagerProxy)等を調べて見るといいかと思います。

# re: UpdatePanel コントロール上で利用できないコントロール

2007年1月25日 17:59 by mona.net

ありがとうございます。

ではScriptManagerを調べてみますね。

# Ask The Experts! 第二弾 AJAX チーム編が公開

2007年5月3日 12:54 by ナオキにASP.NET(仮)

Ask The Experts! ~ その疑問、マイクロソフトの担当者にきいてみませんか ? からです。 いつの間にか公開されていたのでチェックしました。今回の内容も非常に濃かったです。ASP.NET

# ASP.NET AJAX 3.5 と 1.0 の UpdatePanel コントロールはやっぱり仕様が違う

2007年12月19日 15:24 by ナオキにASP.NET(仮)
ASP.NET AJAX V1.0 がリリースされた直後に以下の投稿をしました。 UpdatePanel コントロール上で利用できないコントロール 簡単に言うと、 AJAX 1.0 の UpdatePanel

どのような感想ですか?

(必須) 
必須 
(必須)