使用ModalPopupExtender而不必设置TargetControlID?

时间:2010-03-16 14:04:06

标签: asp.net ajaxcontroltoolkit modalpopupextender

我想在我的asp.net页面中使用modalpopupextender来显示子表单。但它只需要在特定条件下显示。这些条件是在一段javascript代码中确定的。

因此,最重要的是,模式弹出窗口不必在按钮单击时显示。但是,如果我将属性TargetControlID保留为空,则会出现以下异常:

  

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

     

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

我是否只将TargetControlID置于隐藏按钮或者是否还有更合适的选项?

3 个答案:

答案 0 :(得分:23)

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

答案 1 :(得分:11)

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

答案 2 :(得分: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" />