【发布时间】: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