2

Dynamic AjaxControls を使用して Dynamic UserControls を作成しています。次に、各 UserControls をコレクションに格納します。ポストバックで、コレクション内の UserControls を呼び出して、インターフェイスを再作成します。標準の HTML コントロールのみを使用する場合は機能しますが、AJAX コントロールでは機能しません。PostBack Extender controls may not be registered after PreRender でこのエラーが発生します。これまでのところ、次のことを試しました。

  1. ページおよびユーザーコントロールの MyBase.OnPreRender(e)
  2. OnInitのEnsureChildControls()
  3. MasterPage に ScriptManager を追加しました このようなものはどれも機能していません...

ユーザーコントロール内のコントロールを含むすべてのコントロールを再作成すると、エラーは発生しませんが、ユーザーコントロールのコレクションを呼び出すのではなく、ポストバックを行うのに永遠に時間がかかります。

スタックトレース:

System.Web.UI.ScriptControlManager.RegisterExtenderControl[TExtenderControl] (TExtenderControl extenderControl、コントロール targetControl) で

System.Web.UI.ScriptManager.RegisterExtenderControl[TExtenderControl] (TExtenderControl extenderControl、コントロール targetControl) で

System.Web.UI.ExtenderControl.RegisterWithScriptManager() で

System.Web.UI.ExtenderControl.OnPreRender (EventArgs e) で

d:\hg\act\Server\AjaxControlToolkit\ExtenderBase\ExtenderControlBase.cs:line 365 の AjaxControlToolkit.ExtenderControlBase.OnPreRender(EventArgs e) で

d:\hg\act\Server\AjaxControlToolkit\DropDown\DropDownExtender.cs:line 157 の AjaxControlToolkit.DropDownExtender.OnPreRender(EventArgs e) で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Control.PreRenderRecursiveInternal() で

System.Web.UI.Page.ProcessRequestMain で (ブール値 includeStagesBeforeAsyncPoint、ブール値 includeStagesAfterAsyncPoint)

4

0 に答える 0