ModalPopupExtender绕过OnClick

时间:2012-05-10 19:07:27

标签: asp.net asp.net-ajax

嘿所以我是asp.net的新手,我正在尝试创建一个网站/表单,其中包含大量数据并使用它。我有一个调用submitButton_Click方法的提交按钮,但是我也有一个modalpopup,当我在同一事件的服务器端进行处理时,会显示一个“请稍候”的updatepanel。问题是,似乎modalpopup工作正常,但它正在压制我的submitButton_Click方法调用。我该怎么办?

此外,如果可以在updatepanel打开时调用默认方法吗?我希望每次弹出时面板都是相同的,尽管我最后一次更新它。

<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click"
            CssClass="buttons"/>

<asp:ModalPopupExtender 
        ID="modalProgress" 
        runat="server" 
        OkControlID="btnOkay" 
        TargetControlID="submitButton" 
        PopupControlID="progessPanel"
        BackgroundCssClass="modalBackground">

</asp:ModalPopupExtender>

1 个答案:

答案 0 :(得分:2)

它不会绕过点击事件;它只是将客户端onclick更改为返回false,这会否定回发。老实说,我总是发现这是一个痛苦的屁股。幸运的是,有一种解决方法:

<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click"                CssClass="buttons"/>
<!-- hidden button to satisfy the extender -->
<asp:Button ID="hiddenButton" runat="server" style="display:hidden" />

<asp:ModalPopupExtender 
        ID="modalProgress" 
        runat="server" 
        OkControlID="btnOkay" 
        TargetControlID="hiddenButton" 
        PopupControlID="progessPanel"
        BackgroundCssClass="modalBackground">
</asp:ModalPopupExtender>

通过添加隐藏按钮,您将满足扩展器的要求,并且您可以通过提交按钮的单击事件在代码隐藏中打开对话框:

protected void submitButton_Click(object sender, EventArgs e)
{
    //display the modal dialog
    modalProgress.Show();
}