c# - 当设置为 ModalPopupExtender TargetControlID 时,后面的链接 OnClick 代码不执行

标签 c# asp.net ajax asp.net-ajax ajaxcontroltoolkit

我做了很多搜索,但无法弄清楚。

我有一个 ModalPopupExtender 弹出窗口,我想在用户单击链接 DoSomething 时显示它。弹出窗口有一个下拉控件,然后我想在用户要求打开对话时即时填充它。这需要通过后台代码在服务器端发生。目前我正在尝试通过链接上的 OnClick 事件来执行此操作,但是一旦链接绑定(bind)到 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​​tonOnClick 上显示模式,甚至从代码隐藏:

标记:

<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# - 当设置为 ModalPopupExtender TargetControlID 时,后面的链接 OnClick 代码不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10216268/

相关文章:

c# - 从 double 转换为 int 的最佳(最安全)方法

c# - 为程序集中的现有类定义默认构造函数

javascript - 如何使用自动回发进行计算以避免屏幕闪烁

asp.net - 从用户控件将代码注入(inject)母版页/html 头

javascript - ajax循环settimeout,仅在上一个请求完成后才发出新请求

c# - 如何提取通用/相似代码块以在 Visual Studio C# 中运行

c# - 为什么 VS2010 "Lose"我的引用构建?

asp.net - LINQDataSource - 查询多个表?

java - 对 Java/Wicket 服务器的 jQuery AJAX 调用在 IE 中没有响应 (6/7/8)

javascript - Controller 返回原始 JSON 对象作为 View