ModalPopupExtender确定按钮单击事件未触发?

Kyl*_*man 43 asp.net updatepanel modalpopupextender asp.net-ajax

我在UpdatePanel中有一个Button.该按钮用作ModalPopupExtender的OK按钮.由于某种原因,按钮单击事件未触发.有任何想法吗?我错过了什么吗?

<asp:updatepanel id="UpdatePanel1" runat="server">
    <ContentTemplate>
        <cc1:ModalPopupExtender ID="ModalDialog" runat="server" 
            TargetControlID="OpenDialogLinkButton"
            PopupControlID="ModalDialogPanel" OkControlID="ModalOKButton"
            BackgroundCssClass="ModalBackground">
        </cc1:ModalPopupExtender>
        <asp:Panel ID="ModalDialogPanel" CssClass="ModalPopup" runat="server">
            ...
            <asp:Button ID="ModalOKButton" runat="server" Text="OK" 
                        onclick="ModalOKButton_Click" />
        </asp:Panel>
    </ContentTemplate>
</asp:updatepanel>
Run Code Online (Sandbox Code Playgroud)

小智 53

ASPX

<ajax:ModalPopupExtender runat="server" ID="modalPop" 
            PopupControlID="pnlpopup" 
            TargetControlID="btnGo"
              BackgroundCssClass="modalBackground"
             DropShadow="true"
             CancelControlID="btnCancel" X="470" Y="300"   />


//Codebehind    
protected void OkButton_Clicked(object sender, EventArgs e)
    {

        modalPop.Hide();
        //Do something in codebehind
    }
Run Code Online (Sandbox Code Playgroud)

并且不要将OK按钮设置为OkControlID.


Kyl*_*man 9

看起来用作ModalPopupExtender的OK或CANCEL按钮的按钮不能有click事件.我通过删除来测试了这个

OkControlID="ModalOKButton"
Run Code Online (Sandbox Code Playgroud)

从ModalPopupExtender标记中,按钮单击将触发.我需要弄清楚将数据发送到服务器的另一种方法.


Joh*_*ino 8

也可能是按钮需要具有CausesValidation ="false".这对我有用.


bal*_*dre 6

我只是在寻找一个解决方案:)

看来你不能将OkControlID分配给一个控件,如果你想要该控件触发一个事件,只需删除这个属性我就让一切恢复正常了.

我的代码(工作):

<asp:Panel ID="pnlResetPanelsView" CssClass="modalPopup" runat="server" Style="display:none;">
    <h2>
        Warning</h2>
    <p>
        Do you really want to reset the panels to the default view?</p>
    <div style="text-align: center;">
        <asp:Button ID="btnResetPanelsViewOK" Width="60" runat="server" Text="Yes" 
            CssClass="buttonSuperOfficeLayout" OnClick="btnResetPanelsViewOK_Click" />&nbsp;
        <asp:Button ID="btnResetPanelsViewCancel" Width="60" runat="server" Text="No" CssClass="buttonSuperOfficeLayout" />
    </div>
</asp:Panel>
<ajax:ModalPopupExtender ID="mpeResetPanelsView" runat="server" TargetControlID="btnResetView"
    PopupControlID="pnlResetPanelsView" BackgroundCssClass="modalBackground" DropShadow="true"
    CancelControlID="btnResetPanelsViewCancel" />
Run Code Online (Sandbox Code Playgroud)


小智 5

将属性“UseSubmitBehavior=false”放入按钮控制中。