【问题标题】:Re-usable ModalPopupExtender可重复使用的 ModalPopupExtender
【发布时间】:2011-05-30 02:37:59
【问题描述】:

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

我已经尝试了一段时间,使用了许多不同的方法,但没有一个能正常工作,而且所有这些方法似乎都不是正确的方法。其中包括:

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

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

【问题讨论】:

  • 你为什么不为此使用合适的 js 库?像jquery。使用 jquery 创建模态弹窗真的很容易创建。
  • 因为我必须使用在这个项目中可用的库,所以我只能使用 .net Ajax 库。
  • 但是jquery是免费的,也是可用的,使用jayesh的特性肯定比自己写更不容易出错。
  • @Tomas - 假设 Sam 至少使用了一些 ASP.Net AJAX,那么他可能有一个或 20 个更新面板。我一直在尝试让 jQuery 对话框正常工作在 ASP.Net 更新面板中。它可以完成,我已经完成了,但这并不是很有趣,因为您必须重新运行 js 以在每次异步回发时为更新面板内的任何对话框创建对话框,但不要再次运行它更新面板之外的那些...
  • 听起来你可以为所欲为,只是你无法访问你想要的控件集合。可能是命名容器问题。你能发布一些显示问题的代码吗?

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


【解决方案1】:

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

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

我在母版页上放置了一个 JavaScript 函数,该函数接受了我想要弹出的面板 ID,但一切都由面板自己处理,无需传递事件或任何周围的东西。

我最多的是两个不同的弹出窗口,远不及你的 20 个。

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

你能解释一下吗?为什么每个要弹出的面板没有 1 个按钮?您有 20 个不同的面板,但根据用户的请求,其中只有 1 个处于活动状态?还是您需要循环浏览不同的面板?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-17
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多