无法在子页面中调用母版的模态弹出窗口

时间:2011-08-15 18:38:30

标签: javascript asp.net ajax master-pages modalpopupextender

我正在使用模态弹出窗口来显示登录框。模态弹出窗口位于母版页中,并与其中的LogIn链接相关联。现在我想使用不同的链接按钮在子页面中调用相同的模式弹出窗口。模式弹出窗口可以通过母版页的LogIn链接调用,但是我想在子页面中添加第二个控件(linkBut​​ton),可以调用母版页的模式页面。

我在子页面中尝试了这个:

function LogIn2()
{
$find("programmaticModalPopupBehavior").show();
} 

<asp:LinkButton ID="LinkButton1" runat="server" OnClientClick="LogIn2">Log in</asp:LinkButton>

参考:multiple TargetControls for the ModalPopup

如何从子页面中的控件调用母版页的功能模式弹出窗口?

更新

这是在主页:

<ajax:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="linkLog" CancelControlID="linkClose" BackgroundCssClass="cssModal"                       PopupControlID="panelPopUp" BehaviorID="programmaticModalPopupBehavior" PopupDragHandleControlID="panelDrag"></ajax:ModalPopupExtender>

2 个答案:

答案 0 :(得分:0)

我不确定这一点,但让我确认你是否正在使用如下所示的ajax控件

 <asp:ModalPopupExtender ID="ImageUploaderEx" runat="server"  BehaviorID="ImageUploaderBID" TargetControlID="Link Name" CancelControlID="Cancel"  PopupControlID="Panel to be open" OnCancelScript="hideUploader()"></asp:ModalPopupExtender>

如果是,那么你可以使用不同名称的相同模态,如果这不起作用,请告诉我,我会尽我所能

尝试此操作

((ModalPopupExtender)Page.Master.FindControl("ModalPopupExtender1")).Show();

并添加此内容

using AjaxControlToolkit;

答案 1 :(得分:0)

为LinkBut​​ton添加OnClientClick,如下所示:

<asp:LinkButton ID="LinkButton1" runat="server" Text="Login 2" OnClientClick="return LogIn2()" ...>

将JavaScript函数放在母版页中,在显示弹出窗口后,让方法返回false以防止LinkBut​​ton进行回发:

function LogIn2()
{
    $find("<%=ModalPopupExtender1.UniqueID%>").show();
    return false;
}

作为替代方案,您可以在执行LogIn2函数之后将返回false添加到LinkBut​​ton的OnClientClick,如下所示:

<asp:LinkButton ID="LinkButton1" runat="server" Text="Login 2" OnClientClick="LogIn2();return false;" ...>