可重复使用的ModalPopupExtender

时间:2010-12-23 18:11:15

标签: c# asp.net asp.net-ajax webforms

我正在尝试创建一个ModalPopupExtender,它可以存储在母版页或用户控件中,并允许我将面板和事件传递给它,并使用此面板作为面板“弹出”和事件作为按下确定按钮时调用的事件。

我已经尝试了一段时间,使用了许多不同的方法,但没有一种方法正常工作,而且看起来它们都不是正确的方法。其中包括:

  • 将面板添加为另一个面板的子控件,该面板是扩展器的Popuptarget。这会弹出右侧面板,但由于面板中的控件已移出子页面,因此无法在事件中访问它们。
  • 将扩展器的Popuptarget更改为我想要弹出的面板,然后添加一个动态创建的按钮,其中包含正确的事件作为确定按钮。这会再次弹出右侧面板,并调用正确的事件,但事件无法再次访问面板上的控件。

因此,如果任何人都可以建议最好的方法来做到这一点,或任何以前做过的文章,那将不胜感激。我这样做的原因是我们有一些页面有20个不同的项目,可能需要用modalpopupextender向用户显示,为每个页面添加一个扩展器会非常烦人。

1 个答案:

答案 0 :(得分:1)

这是我几年前必须要做的事情,我在ASP.Net论坛上使用了这个方法:

http://forums.asp.net/p/1301694/2541024.aspx

我在主页面上放了一个JavaScript函数,该主页面包含了我想要弹出的Panel ID,但是所有内容都由面板本身处理,无需传递事件或其他任何内容。

我所拥有的最多的是两个不同的弹出窗口,不在你的20附近。

  

将扩展器的Popuptarget更改为我想要弹出的面板,然后添加一个动态创建的按钮,其中包含正确的事件作为ok按钮。这会再次弹出右侧面板,并调用正确的事件,但事件无法再次访问面板上的控件。

你能解释一下这个吗?为什么每个面板上没有弹出一个按钮?您有20个不同的面板,根据用户的要求,其中只有1个是活动的?或者你需要循环通过不同的面板?

你能否提供一些示例代码来展示你想要实现的目标。