UserControl内的一个页面上有多个ModalPopUpExtenders

时间:2010-10-12 14:32:08

标签: javascript asp.net ajax asp.net-ajax ajaxcontroltoolkit

我在UserControl中有1个ModalPopupExtender。在我开始向页面添加相同的usercontrol之前,一切都很有效。我在javascript控制台::

中收到此错误消息
  

消息:Sys.InvalidOperationException:具有相同ID“MPE1”的两个组件无法添加到应用程序中。

我理解错误,很明显框架需要唯一的ID。我无法弄清楚的是如何赋予它们独特的名称。在此先感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

Brian,谢谢,但这是在.NET 2.0中。

解决此问题的简单方法是删除标记“BehaviorID”。这是我现在要选择的选项,我希望将来我不必使用JS来调用任何弹出窗口。

答案 1 :(得分:0)

您使用的.NET 4是否具有静态的ClientIDMode?这会导致问题,但是使用默认选项或预测选项,这应该有效...检查客户端占用空间,查看所有ID是MPE1还是如何完成。它应该是uc1_MPE1。如果你有两个具有相同ID(或空ID)的UC,则会导致问题。

HTH。

答案 2 :(得分:0)

有两种方法可以解决这个问题:

  1. 按照 ssparacio 的说明执行操作,然后删除BehaviorID标记。如果您不需要对控件进行客户端调用,则可以执行此操作。
  2. 在Page_Init期间为BehaviourID分配唯一值。一个很好的选择是定义控件的用户控件的ID。