Il più delle volte lo uso quando accedo a una proprietà di un controllo composito che dipende da un controllo figlio. Ma l'ho anche aggiunto a OnInit di un controllo in modo da assicurarmi che un campo nascosto sia stato aggiunto correttamente. Solo un minuto fa l'ho chiamato in RenderControl perché stavo avendo un problema nel rendering di un estensore del calendario e l'ho risolto. Sto iniziando a confondermi un po 'quando ne ho bisogno e quando non ho bisogno di chiamare ConfirmChildControls e quando dovrei chiamarlo. Qualsiasi suggerimento è benvenuto Grazie!Qual è l'uso corretto di ConfirmChildControls()?
risposta
ConfirmChildControls attiva CreateChildControl se non è già stato attivato prima. Questo deve essere fatto solo una volta nel ciclo di vita della pagina. Lo chiamo incondizionatamente in OnInit/Page_Init e da nessun'altra parte. Questo posto ha il vantaggio che i controlli vengono creati prima che ASP.NET carichi ViewState. Se si utilizza ViewState o ControlState è necessario creare i controlli figlio in modo tempestivo.
La chiamata in OnInit elimina la necessità di chiamarlo nelle proprietà se la proprietà accede a qualcosa come TextBox1.text? – Mike
In generale dico "sì", ma in dettaglio dipende dal tuo utilizzo. Se chiami ConfirmChildControls in OnInit è sicuro accedere ai controlli (tramite proprietà o altro) senza richiamarlo nuovamente in tutte le fasi successive del ciclo di vita delle pagine (Caricamento, Eventi postback, Rendering, ...) Se ti affidi a ViewState, questo dovrebbe essere l'unico utilizzo –
Il metodo ConfirmChildControls consente di creare controlli figlio prima di accedervi.
Ogni volta che si scrivere i controlli compositi per esempio, si vuole costruire i controlli all'interno degli eventi CreateChildControls quindi chiamare EnsureChildControls prima di accedere di loro per assicurarsi che tutti i controlli sono stati creati in modo da non ottenere un'eccezione di riferimento null.
questa domanda mi rende felice Ho imparato MVC :) – fearofawhackplanet