0

日付を取得するためのテキストボックスとともに、ajax日付エクステンダーのユーザーコントロール「カレンダー」を作成しました。ここで、テーブルに入力されているすべての行に対してこのコントロールを動的に作成しようとしています。次のエラーが発生します:-ScriptManagerのインスタンスを1つだけページに追加できます。

ここにコードがあります:-

tc = new TableCell();
            tc.Style["width"] = "15%";
            Calendar1 = (ASP.Calendar)LoadControl("../Calendar.ascx");
            Calendar1.ID = "tbDate" + Convert.ToString(_id);
            tc.Controls.Add(Calendar1);
            tr.Cells.Add(tc);
            tc.Dispose();
            tc = null;

そして、私はグローバル変数を宣言しました:-public ASP.Calendar Calendar1;

事前に私たちの提案をありがとう。

4

2 に答える 2

0

スクリプトマネージャをページに複数回、場合によってはユーザーコントロール自体に含めました。

于 2012-07-16T07:54:25.157 に答える
0

本格的なScriptManagerではなく、Webユーザーコントロール内でScriptManagerProxyコンポーネントを使用する必要があります。ScriptManagerProxyは、この種の用途のためだけに作成されました。

「ScriptManagerコントロールが親要素ですでに定義されている場合に、コンテンツページやユーザーコントロールなどのネストされたコンポーネントがページにスクリプトおよびサービス参照を追加できるようにします。」-http ://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanagerproxy.aspx

したがって、基本的には、呼び出しページ自体でScriptManagerを使用し、Calendar.ascxWebユーザーコントロール内でScriptManagerProxyコンポーネントを使用するようにしてください。

デザインでそれが実際に許可されていない場合は、ネストされたコントロールとしてのみ使用されるCalendar.ascxの2番目のバージョンを作成してはどうでしょうか。

于 2012-07-16T07:58:49.730 に答える