C# 可重复使用的ModalPopupXtender

C# 可重复使用的ModalPopupXtender,c#,asp.net,asp.net-ajax,webforms,C#,Asp.net,Asp.net Ajax,Webforms,我正在尝试创建一个ModalPopupXtender,它可以存储在母版页或用户控件中,允许我向其传递一个面板和一个事件,并将此面板用作要“弹出”的面板,将事件用作按下“确定”按钮时调用的事件 我已经尝试了一段时间,使用了许多不同的方法,但没有一种方法能够正确工作,而且似乎它们都不是正确的方法。这些措施包括: 将面板添加为扩展器的Popuptarget的另一个面板的子控件。这会弹出右侧面板,但由于面板中的控件已移出子页面,因此无法在事件中访问它们 将扩展器的Popuptarget更改为我要弹出的

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

我已经尝试了一段时间,使用了许多不同的方法,但没有一种方法能够正确工作,而且似乎它们都不是正确的方法。这些措施包括:

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

因此,如果有人能建议最好的方法,或者之前已经做过的文章,我们将不胜感激。我这样做的原因是,我们的一些页面上有多达20个不同的项目,可能需要使用ModalPopupXtender向用户显示,为每个项目添加一个扩展器将非常烦人。

这是我几年前不得不做的事情,我在ASP.Net论坛上使用了这种方法:

我在母版页上放了一个JavaScript函数,该函数包含我想要弹出的面板ID,但所有内容都由面板自己处理,不需要传递事件或任何内容

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

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

请你再解释一下好吗?为什么不在弹出的每个面板上设置一个按钮?您有20个不同的面板,其中只有1个处于活动状态,具体取决于用户的请求?或者你需要在不同的面板之间循环


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

你为什么不为此使用合适的js库呢?比如jquery。使用jquery创建模式弹出窗口非常容易。因为我必须使用本项目中可用的库,这就让我有了.net Ajax库。但是jquery是免费的,也可用,使用jayesh的特性肯定比编写自己的特性更不容易出错。@Tomas-假设Sam一直在使用至少一些ASP.Net AJAX,那么他可能有一个或20个更新面板。我一直在努力让jQuery对话框在ASP.Net更新面板中正常工作。这是可以做到的,我已经做到了,但这并没有多大的乐趣,因为你必须在每次异步回发时重新运行js来为更新面板内的任何对话框创建对话框,但不要为更新面板外的对话框再次运行它……听起来你可以做你想做的事情,只是你不能访问你想要的控件集合。可能是namingcontainer问题。你能发布一些代码来说明这个问题吗?