我做了很多搜索,无法解决这个问题。
当用户点击链接DoSomething时,我想要显示一个ModalPopupExtender弹出窗口。弹出窗口有一个下拉控件,当用户要求打开对话框时,我想立即填充该控件。这需要通过后面的代码在服务器端发生。目前我正在尝试通过链接上的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代码的链接。
任何想法为什么不支持这个以及正确的解决方案是什么?
答案 0 :(得分:8)
将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();
}