Come abbiamo visto nello script #1023, ASP.NET 4.0 introduce un'eccezionale flessibilità nella gestione del ViewState, che permette di controllarne l'abilitazione in maniera estremamente precisa e selettiva.
Alle volte può essere necessario capire se un dato controllo server sia configurato o meno per utilizzare il ViewState, magari per decidere se abilitare o meno una particolare funzionalità che lo richiede. Allo scopo è disponibile la proprietà IsViewStateEnabled, che però è definita come protected internal e quindi invocabile solo dall'interno del controllo su cui si vuole effettuare la verifica.
Per ovviare a questa limitazione, possiamo realizzare un extension method che ne replichi la logica, come quello mostrato in basso:
public static class ViewStateUtils { public static bool CheckViewStateEnabled(this Control control) { if (!control.EnableViewState) return false; if (control.ViewStateMode == ViewStateMode.Inherit) { if (control.Parent == null) return true; return CheckViewStateEnabled(control.Parent); } return (control.ViewStateMode == ViewStateMode.Enabled); } }
In questo modo raggiungere il nostro scopo diventa assolutamente banale.
protected void Page_Load(object sender, EventArgs e) { if (this.theGridView.CheckViewStateEnabled()) { this.theLabel.Text = "Il ViewState per la GridView è attivo"; } }
Per approfondimenti:
#1023 - ViewStateMode in ASP.NET 4.0: come controllare il ViewState
https://www.aspitalia.com/script/1023/ViewStateMode-ASP.NET-4.0-Controllare-ViewState.aspx
Le novità di ASP.NET 4.0
https://www.aspitalia.com/articoli/asp.net4/introduzione.aspx
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Creare una libreria CSS universale: Cards
- Eseguire script pre e post esecuzione di un workflow di GitHub