4

我做了很多搜索,无法弄清楚这一点。

我有一个 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 代码的链接一样。

任何想法为什么不支持它以及正确的解决方案是什么?

4

1 回答 1

8

将 附加ModalPopupExtender到一个虚拟按钮并在LinkButton's上显示模式,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();
  }
于 2012-04-18T19:28:33.253 回答