2010-03-16 37 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" /> 
相關問題