2010-03-16 74 views
17

我想在我的asp.net页面中使用modalpopupextender来显示一个子表单。但它只能在特定条件下显示。这些条件是在一段JavaScript代码中确定的。使用ModalPopupExtender无需设置TargetControlID?

所以,最重要的是,模式弹出不必显示在按钮单击。但是,如果我将属性TargetControlID留空,我会得到以下异常:

'ModalPopupExtender1'的TargetControlID无效。该值不能为空或空。 描述:执行当前Web请求期间发生未处理的异常。请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息: System.InvalidOperationException:该 的TargetControlID 'ModalPopupExtender1' 是 无效。该值不能为空或 为空。

我只是将TargetControlID设置为隐藏按钮,或者还有更像样的选项吗?

+0

您使用HiddenField或Button控件作为目标控件的ID。你有没有遇到任何困难,将hiddenfield作为targetcontrolId,因为我现在是 – Deeptechtons 2011-05-04 09:37:27

+1

@deeptechtons,不要使用HiddenField。按照Mike的回答,使用Button控件,但用css(style =“display:none;”)隐藏它。 – 2011-05-04 14:25:00

+0

你是完全正确的。该按钮解决了我的问题,想知道使用隐藏字段有什么问题 – Deeptechtons 2011-05-05 06:09:27

回答

19

据我所知,将TargetControlID设置为隐藏按钮(display:none;)是最好的方法。

+0

首先,我尝试添加'',但没有奏效。 ''是这个答案的关键。 – user1325179 2017-01-25 18:40:44

10

TargetControlID也可以设置为HiddenField类型。这样,你甚至不需要一个按钮

0

克里特岛一个按钮,将其设置为您的TargetControlID并给予style = "display:none"

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" TargetControlID="btnPopup" 
     CancelControlID="btnClose" BackgroundCssClass="modalBackground" OkControlID="btnClose"></asp:ModalPopupExtender> 

<asp:Button ID="btnPopup" runat="server" Text="PopUp" style = "display:none" /> 
相关问题