AJAX 计时器控件每 5 秒加载一个控件
我有以下层次结构
页面 -> Usercontrol1 与 (asp:UpdatePanel & asp:Timer) ---> Usercontrol2 与 (asp:UpdatePanel) 与网格
在页面加载中,我正在加载 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。
有人可以帮忙吗?
谢谢 赛义夫
I have the following Hierarchy
Page
-> Usercontrol1 with ( asp:UpdatePanel & asp:Timer)
---> Usercontrol2 with (asp:UpdatePanel) with a grid
In page load i am loading usercontrol1, then usercontrol1 loads usercontrol2.
I am getting following error :-
"Cannot unregister UpdatePanel with ID 'UpdatePanel1' since it was not registered with the ScriptManager. This might occur if the UpdatePanel was removed from the control tree and later added"
Now I have tried with
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 });
}
}
After this i am getting the following error :-
"The control collection cannot be modified during DataBind, Init, Load, PreRender or Unload phases."
If i remove the update panel from usercontrol2 this works fine... but need an ajax post back in usercontrol2.
Can someone help ?
Thanks
Saif
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论