[英]Make user Control visible using Javascript
我想要使用戶控件在單擊按鈕時可見。 我在以下代碼中得到對象null典型錯誤。 如何使用JavaScript使完整的用戶控件可見或不可見?
Dim ucAddNewChekcing As SubscriberSetupPages_UserControls_CheckingAccount
ucAddNewChekcing = DirectCast(pnlTopLevel.Items().FindItemByValue("pnlAddChecking").FindControl("CheckingAcct1"), SubscriberSetupPages_UserControls_CheckingAccount)
Dim openWinScript As String = "SetVisibility('" & ucAddNewChekcing.ClientID & "');"
btnAddChecking.OnClientClick = openWinScript
提前致謝。
設置了visible =“ false”意味着您的控件完全不會被渲染,因此當您想要顯示它時沒有可用的元素。 您可以通過以下幾種方式解決此問題:
保持控件可見,使其呈現,並使用css樣式將其隱藏,直到需要為止: style="display: none;"
代替visible="false"
。
將visible
更改為true
並設置style="display: none;"
在某些包裝元素上(請參見下面的編輯)。
在您的SetVisibility
函數中,您可以
element.style.display = '';
刪除none
值並顯示元素。
編輯:好了,再多考慮一下,我們不能放style="display: none;"
直接在用戶控件標簽中,因為它不會映射到任何特定的html元素。 相反,需要在包裝用戶控件內容的元素上設置此元素。
如果用戶控件已經具有這樣的元素,那么這將是設置顯示樣式的好地方。 您可以在控件中添加一個方法,該方法將返回該元素的ClientID,以便您可以在腳本中引用它。
否則,如果您的布局可以忍受,則可以將控件放在asp:Panel
然后在其中設置display屬性。
另一種選擇是將您的控件包裝在一個UpdatePanel中,該UpdatePanel包含一些控件(例如HiddenField
)作為標志,以指示該控件是否可見。 如果走那條路線, SetVisibility
函數看起來像
// change value on flag control
hiddenControl.value = '1';
// trigger a partial postback
__doPostBack('UpdatePanel1', '');
然后在UpdatePanel_Load
函數中,您可以檢查標志控件的值,並相應地在用戶控件上設置Visible
屬性。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.