【发布时间】:2013-03-02 06:47:32
【问题描述】:
我有一个类似于Calling a method in parent page from user control 的问题,除了我的用户控件是在页面创建时动态生成的。
我在上面的答案中尝试了首选的解决方案,但是由于我事先不知道页面上需要多少个控件副本,所以我无法订阅 Page_Load 上的事件。
这个应用程序的逻辑需要大修,但它超出了我当前项目的范围。
我目前已经实现了不太受欢迎的((MyPageName)this.Page).CustomMethod();,但如果可以的话,我希望以“正确”的方式来实现。
你有什么建议吗?
编辑:控件的代码位于与页面分开的页面中。 (我打算在项目的其他地方重用它。)这意味着控件不知道页面上有哪些处理程序可用。
【问题讨论】:
-
我不知道您当前的实现是“错误”的方式。
-
不能每次创建控件的新实例时都订阅事件吗?你在哪里动态创建它?
-
请添加显示您如何动态创建用户控件的代码,以便我们为您提供帮助。
-
@AndrewShepherd:这是“错误”的方式,因为它强制用户控件了解页面的方法。