4

クライアント側からポップアップを表示する方法を理解するために、いくつかの Web リソースに従って、次のコードを作成しました。

<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] ボタンにリンクしていましたが、かなりうまく機能していました。ポップアップを開く前に検証が必要になり、このコードは機能しなくなりました =/

4

1 に答える 1

6

1) ダミー ボタンは visible = true である必要があります。そうしないと、javascript が正しく機能しません。したがって、visible = true を設定しますが、css で disaply none:

 <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 エラーがないか探します。

于 2009-04-01T14:05:08.837 に答える