为什么ModalPopupExtender不能通过javascript显示?

时间:2009-04-01 13:09:38

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

我关注了几个网络资源,了解如何从客户端显示弹出窗口,我制作了这段代码:

<asp:ImageButton runat="server" ID="btnOk" ImageUrl="imagens/btnAlterar.gif" OnClientClick="btnOkClick()" />

<asp:LinkButton runat="server" ID="dummyForPopup" Visible="false"/>

<ajaxToolKit:ModalPopupExtender runat="server" BehaviorID="btnOkPopupBehavior" ID="MPXtender" TargetControlID="dummyForPopup"  PopupControlID="pnlUpdateUserModal" BackgroundCssClass="modalBackground" OkControlID="btnCloseRequestUserUpdate" OnOkScript="userUpdReq_onOk()" />


function btnOkClick()
{
    if(validateAll())
    {
        var behavior = $find('btnOkPopupBehavior');
        if (behavior)
        {
            behavior.show();
        }
        else
        {
            var lblOutput = $get('<%= lblOutput .ClientID %>');
            lblOutput .innerText = 'Couldn't find popup';
        }
    }
}

之前我将模态弹出窗口链接到ok按钮,它工作得很好。现在我在打开弹出窗口之前需要一些验证,而且这段代码不再工作= /

1 个答案:

答案 0 :(得分:6)

1)您的虚拟按钮必须是可见= true,否则javascript无法正常工作。所以设置visible = true但是没有用css:

 <asp:LinkButton runat="server"
 ID="dummyForPopup" style
 ="display:none" Visible="true" />

2)lblOutput .innerText ='找不到弹出窗口';是一个javascript错误。您需要将其更改为:“找不到弹出窗口”; (或使用&apos;

3)OnClientClick =“btnOkClick()”应该说:OnClientClick =“btnOkClick(); return false;”

4)在页面上查找任何其他javascript错误,因为这些错误会使弹出窗口无法正常工作。