编程语言
首页 > 编程语言> > c# – 当设置为ModalPopupExtender TargetControlID时,后面的链接OnClick代码不会执行

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附加到一个虚拟按钮,并在代码隐藏中显示LinkBut​​ton的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