AJAX Timer Control每5秒加载一次控件

时间:2010-06-25 08:33:31

标签: ajaxcontroltoolkit

我有以下层次结构

  

页    - > Usercontrol1 with(asp:UpdatePanel& asp:Timer)   ---> Usercontrol2 with(asp:UpdatePanel)with grid

在页面加载中我正在加载usercontrol1,然后usercontrol1加载usercontrol2。

我收到以下错误: -

“无法取消注册带有ID'UpdatePanel1'的UpdatePanel,因为它没有在ScriptManager中注册。如果UpdatePanel已从控制树中删除并稍后添加”

,则可能会发生这种情况。

现在我尝试了

protected override void OnInit(EventArgs e)
{
    base.OnInit(e);
    this.UpdatePanel1.Unload += new EventHandler(UpdatePanel_Unload);
}


void UpdatePanel_Unload(object sender, EventArgs e)
{
    this.RegisterUpdatePanel(sender as UpdatePanel);
}



public void RegisterUpdatePanel(UpdatePanel panel)
{

    foreach (MethodInfo methodInfo in typeof(ScriptManager).GetMethods(BindingFlags.NonPublic | BindingFlags.Instance))
    {

        if (methodInfo.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel"))
        {

            methodInfo.Invoke(ScriptManager.GetCurrent(Page), new object[] { panel });

        }

    }

在此之后我收到以下错误: -

“在DataBind,Init,Load,PreRender或Unload阶段无法修改控件集合。”

如果我从usercontrol2中删除更新面板,这可以正常工作......但需要在usercontrol2中回复ajax。

有人可以帮忙吗?

由于 赛义夫

0 个答案:

没有答案