我做了很多搜索,但无法弄清楚。
我有一个 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
附加到虚拟按钮并在 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# - 当设置为 ModalPopupExtender TargetControlID 时,后面的链接 OnClick 代码不执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10216268/