【问题标题】:UpdatePanel error when dynamically adding User controls into a page将用户控件动态添加到页面时出现 UpdatePanel 错误
【发布时间】:2015-08-12 11:56:16
【问题描述】:

好吧,当我想将一些包含 UpdatePanel 的基本用户控件加载到另一个用户控件页面时,我遇到了一个小问题。

设置:

每当用户点击一个按钮时,就会出现一个弹出窗口,其中包含某个人的一些基本信息和一个包含他工作的公司的选项卡。他/她工作的公司数量可以从 1 到 4~,所以我做一个查询,然后为我得到的每个公司添加一个视图到一个多视图,这个视图包含多个简单的用户控件(更新面板内的文本字段)。现在每当我转到该页面时,我都会收到此错误:

无法取消注册 ID 为“UpdatePanel2”的 UpdatePanel,因为它没有在 ScriptManager 中注册。如果从控件树中删除 UpdatePanel 并稍后再次添加,则可能会发生这种情况,这是不受支持的。参数名称:updatePanel

现在我知道这是由动态生成未向 ScriptMaster 注册的 UpdatePanel 引起的常见错误。我无法将 PreInit 事件处理程序添加到添加 UserControls 和 UpdatePanels 的页面,因为它本身就是一个 UserControl。

我的问题是:

我怎样才能以不那么讨厌的方式摆脱这个讨厌的错误,例如不是将 UpdatePanel 添加到 scriptmaster 的硬编码子例程

【问题讨论】:

  • 您的页面上是否有 ScriptManager 控件? (msdn.microsoft.com/en-us/library/bb398863.aspx)
  • 不,只有母版页有。
  • 脚本管理器是否添加在所有更新面板之前,并且在母版页上的内容占位符之前?
  • 是的,我已经通过更改用户控件中的 updatePanel id 修复了它

标签: asp.net vb.net updatepanel


【解决方案1】:

您可以定义要在用户控件中添加的功能。我过去也做过同样的事情,在我的用户控件中添加了以下内容。

override protected void OnInit(EventArgs e) {
 // your code here
}

【讨论】:

  • 这似乎是唯一的方法
【解决方案2】:

在您的 MasterPage 上的 UpdatePanel 之前添加一个 ScriptManager。而且您的 updatePanel 有点令人困惑,因此也可能会对其进行更改。 :)

【讨论】:

  • 在我的问题的 cmets 中,我告诉某人母版页上已经有一个 ScriptManager
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-07
  • 2011-05-01
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
相关资源
最近更新 更多