簡體   English   中英

使用Java腳本使用戶控件可見

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM