c# – 当设置为ModalPopupExtender TargetControlID时,后面的链接OnClick代码不会执行
作者:互联网
我做了很多搜索,无法解决这个问题.
我有一个ModalPopupExtender弹出窗口,我想在用户点击链接DoSomething时显示.弹出窗口有一个下拉控件,当用户要求打开对话框时,我想立即填充该控件.这需要通过后面的代码在服务器端发生.目前我正在尝试通过链接上的OnClick事件来完成它,但只要链接绑定到ModalPopupExtender,就不会执行链接OnClick代码.
代码段:
<asp:LinkButton ID="lnkDoSomething" runat="server" onClick="lnkDoSomething_Click">Do Something</asp:LinkButton>
<asp:ModalPopupExtender ID="mpelnklnkDoSomething" runat="server" BackgroundCssClass="modalBackground"
DropShadow="true" PopupControlID="lnkDoSomething"
PopupDragHandleControlID="pnlDragHandlerForlnkDoSomething"
TargetControlID="lnklnkDoSomething"></asp:ModalPopupExtender>
问题是,只要我将ModalPopupExtender设置为OnClick代码不执行的链接.这显然是设计的,但它对我来说没有意义(天真),好像用户点击应该执行OnClick代码的链接.
任何想法为什么不支持这个以及正确的解决方案是什么?
解决方法:
将ModalPopupExtender附加到一个虚拟按钮,并在代码隐藏中显示LinkButton的OnClick上的模式:
标记:
<asp:LinkButton ID="lnkDoSomething" runat="server" onClick="lnkDoSomething_Click">Do Something</asp:LinkButton>
<asp:Button id="dummyButton" runat="server" style="display:none;" />
<asp:ModalPopupExtender ID="mpelnklnkDoSomething" runat="server"
BackgroundCssClass="modalBackground" DropShadow="true" PopupControlID="controlToPopUpId"
PopupDragHandleControlID="pnlDragHandlerForlnkDoSomething"
TargetControlID="dummyButton"></asp:ModalPopupExtender>
代码隐藏:
protected void lnkDoSomething_Click(Object sender, EventArgs e)
{
//do work
mpelnklnkDoSomething.Show();
}
标签:c,ajax,asp-net,asp-net-ajax,ajaxcontroltoolkit 来源: https://codeday.me/bug/20190609/1207797.html