我有3个不同类型的需要跨我的网站存在AJAX弹出窗口。 我希望我可以简单地创建为每一个用户的控制,并把每一个内板和模态弹出扩展,但是这似乎并不奏效。 有没有人尝试这之前或者你有一个建议,我怎么能避免重复的代码为每个不同的页面上弹出? 谢谢!
Answer 1:
啊我想通了,我的问题与用户控制,我相信。
该ModalPopUpExtender要求目标ID属性被设置,否则会出现错误。 由于这是坐在一个用户控件我刚刚创建了一个虚拟链接按钮不会做任何事情,我设置属性可见为false。
<asp:LinkButton ID="lnkBlank" runat="server" Visible="false" />
<asp:Panel ID="plContainer" style="display: none;" runat="server">
Hello?
</asp:Panel>
<cc1:ModalPopupExtender ID="mpe" runat="server"
BehaviorID="test"
TargetControlID="lnkBlank"
PopupControlID="plContainer" />
显然,它不明白,我的Visible属性设置为true的那一刻就开始工作。 不知道的理由是什么一个目标ID,因为,我认为,最弹出窗口可以从有关页面的多个链接调用。 也许我还没有这个控制应该如何使用完全清楚。
Answer 2:
一种选择是写在asp.net用户控件的弹出窗口(一的.ascx页),包括在页面上你所需要的弹出窗口。 已经在ASCX页的公开方法会显示弹出,当你需要从父页调用它。 如果你已经有了父页面上的脚本经理,你不能有第二个在ASCX页,但其他然后,不应该有任何会停止工作这一点。 希望这可以帮助!
编辑:这是我的模态弹出扩展控制的样子......
<cc1:ModalPopupExtender
ID="mpeClassroom"
BackgroundCssCLass="modalBackground"
runat="server"
CancelControlID="lbClose"
OnOkScript="onOk()"
TargetControlID="Button1"
PopupControlID="pnlClassroom">
</cc1:ModalPopupExtender>
在网页后面我的代码,我的方法只是调用mpeClassroom.Show();
Answer 3:
隐藏链接的TrgetControlID的问题是; 当u盘其知名度为假,服务器不会呈现它。 PopExtender则无法找到网页上的控制。
相反,它的可见性设置为false,尽量申请与显示样式:无。 这应该工作!
文章来源: Trying to self contain pop ups which use the AjaxToolkit ModalPopUpExtender