ModalPopupExtender OK按钮单击事件未触发?
时间:2020-03-06 14:48:54 来源:igfitidea点击:
我在UpdatePanel中有一个Button。该按钮被用作ModalPopupExtender的"确定"按钮。由于某些原因,按钮单击事件未触发。有任何想法吗?我想念什么吗?
<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>
解决方案
看来用作ModalPopupExtender的"确定"或者"取消"按钮的按钮不能具有单击事件。我通过删除
OkControlID="ModalOKButton"
从ModalPopupExtender标记中单击,然后单击按钮。我需要找出另一种将数据发送到服务器的方法。
我只是在寻找解决方案:)
如果我们想让该控件触发一个事件,则似乎无法将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" /> <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" />
以前的答案都没有对我有用。我在OnOkScript事件上称按钮的回发。
<div> <cc1:ModalPopupExtender PopupControlID="Panel1" ID="ModalPopupExtender1" runat="server" TargetControlID="LinkButton1" OkControlID="Ok" OnOkScript="__doPostBack('Ok','')"> </cc1:ModalPopupExtender> <asp:LinkButton ID="LinkButton1" runat="server">LinkButton</asp:LinkButton> </div> <asp:Panel ID="Panel1" runat="server"> <asp:Button ID="Ok" runat="server" Text="Ok" onclick="Ok_Click" /> </asp:Panel>
该按钮也可能需要具有CausesValidation =" false"。那对我有用。
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 }
并且不要将"确定"按钮设置为OkControlID。
将属性" UseSubmitBehavior = false"放入按钮控件。
我经常使用空白标签作为TargetControlID。前任。 <asp:标签ID =" lblghost" runat ="服务器" Text ="" />
我已经看到了导致点击事件不触发的两件事:
1.我们必须删除OKControlID(就像其他人提到的那样)
2.如果使用的是字段验证器,则应在按钮上添加CausesValidation =" false"。
这两种情况对我来说都是相同的方式。