c# - 可重复使用的 ModalPopupExtender

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

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

我已经尝试了一段时间,尝试了很多不同的方法,但没有一个能正常工作,而且看起来它们都不是正确的方法。这些包括:

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

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

最佳答案

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

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

我在主页上放置了一个 JavaScript 函数,它接受了我想要弹出的面板 ID,但一切都由面板本身处理,不需要传递事件或任何东西。

我最多只有两个不同的弹出窗口,离你的 20 个还差得远。

Changing the Popuptarget of the extender to be the panel I want to pop, then added a dynamicaly created button with the correct event as the ok button. This again pops the right panel, and calls the right event, but the event is unable to access the controls on the panel again.

你能再解释一下吗?为什么不在弹出的每个面板上设置 1 个按钮?您有 20 个不同的面板,其中只有 1 个根据用户请求处于事件状态?或者您是否需要循环浏览不同的面板?

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

关于c# - 可重复使用的 ModalPopupExtender,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4521308/

相关文章:

asp.net - HTTP 模块拦截请求并中断自定义错误配置

asp.net - .NET Core是否稳定才能启动真正的产品?

c# - 如何自动退出路径

asp.net - 内存不足 - 无限循环 - ASP.NET AJAX 框架

c# - 平衡导向图

c# - 如果每天指定费率,我如何计算几天的 parking 费?

c# - 如何模拟低电平鼠标左键点击,让微软虚拟键盘接受?

c# - 位图图像 C# 中的 NV12 格式支持

javascript - Ajax 调用返回 viewmodel 但 View 不显示结果

c# - 无法加载 MicrosoftAjax.debug.js