problema RadAjaxManager quando mostra / controllo di nascondere il caricamento della pagina
-
27-09-2019 - |
Domanda
Ho il modulo web con discesa elenco, etichetta e casella di testo. Come di seguito:
<asp:DropDownList ID="ddlTest" runat="server" AutoPostBack="true">
</asp:DropDownList>
<asp:Label ID="lblTest" runat="server" Text="Some text">
</asp:Label>
<asp:TextBox ID="edtTest" runat="server">
</asp:TextBox>
Voglio mostrare / nascondere etichetta e casella di testo a seconda del valore selezionato nella lista a discesa. Così ho aggiunto RadAjaxManader:
<rad:RadAjaxManager ID="RadAjaxManager1" runat="server">
<AjaxSettings>
<rad:AjaxSetting AjaxControlID="ddlTest">
<UpdatedControls>
<rad:AjaxUpdatedControl ControlID="lblTest" />
<rad:AjaxUpdatedControl ControlID="edtTest" />
</UpdatedControls>
</rad:AjaxSetting>
</AjaxSettings>
</rad:RadAjaxManager>
e la procedura "SetupVisibility", che prende il valore dall'elenco a discesa, fa alcune walidations e desides se mostrare o nascondere l'etichetta e la casella di testo. Quando uso la procedura in questo modo:
Protected Sub ddlTest_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ddlTest.SelectedIndexChanged
SetupVisibility()
End Sub
funziona bene, ma ora voglio chiamare SetupVisibility quando la pagina viene caricata:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
SetupVisibility()
End Sub
Il problema si verifica in un tale scenario:
- SetupVisibility () pelli casella di testo e l'etichetta mentre pagina.
- I Valore cambiamento sul menu a tendina ddlTest.
- SetupVisibility () vuole mostrare testo e l'etichetta, ma poi ottengo l'errore :?
Microsoft JScript - runtime error: Cannot update control with ID: ctl00_CPH1_lblTest. The control does not exist.
Dov'è il problema
Soluzione
ho risolto il problema. Ho avvolto la casella di testo e l'etichetta in div e pannello:
<div id="panelTest_DIV" runat="server">
<asp:Panel ID="panelTest" runat="server">
<asp:Label ID="lblTest" runat="server" Text="Some text..."></asp:Label><br />
<asp:TextBox ID="edtTest" runat="server"></asp:TextBox>
</asp:Panel>
</div>
e AjaxManager:
<rad:AjaxSetting AjaxControlID="ddlTest">
<UpdatedControls>
<rad:AjaxUpdatedControl ControlID="panelTest_DIV" />
</UpdatedControls>
</rad:AjaxSetting>
SetupVisibility()
dentro di me insieme panelTest.Visibility
. E 'risolto il problema.
Altri suggerimenti
Page_Init viene licenziato quando la pagina viene inizializzazione. Nel corso di questo evento non c'è guarentee che sono stati creati i controlli ..
Prova a mettere il codice nel Page_Load come controlli sono garantiti per essere stato creato da allora.