Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Aggiornamento: novembre 2007
Oltre allo stato di visualizzazione dell'applicazione, è possibile gestire le informazioni sullo stato privato per un controllo mobile ASP.NET. Quando un controllo mobile gestisce informazioni interne, è consigliabile non farne dipendere la conservazione dalle impostazioni dell'applicazione, ma scrivere l'applicazione in modo che utilizzi lo stato di visualizzazione privato. Tra gli esempi di stato di visualizzazione privato sono inclusi il form attualmente attivo in una pagina, le informazioni di impaginazione relative a un form e le decisioni specifiche di dispositivo prese da un adattatore del controllo.
Lo stato di visualizzazione privato differisce dallo stato di visualizzazione dell'applicazione per molti aspetti. Viene scritto con la pagina di cui è stato eseguito il rendering anziché essere salvato nello stato sessione. Non può essere disattivato dall'applicazione. Poiché inoltre tutti gli stati privati vengono generati dinamicamente, la semantica di registrazione utilizzata per uno stato di visualizzazione dell'applicazione non si applica allo stato di visualizzazione privato.
Per utilizzare lo stato di visualizzazione privato, è necessario che un controllo esegua l'override dei metodi LoadPrivateViewState e SavePrivateViewState. Questi metodi funzionano in modo analogo ai metodi LoadViewState e SaveViewState. Non creare controlli per l'utilizzo dei meccanismi dello stato di visualizzazione dell'applicazione, ad esempio la proprietà di stato ViewState, per salvare impostazioni che fanno parte dello stato di visualizzazione privato.
Anche gli adattatori di controllo possono essere utilizzati nello stato di visualizzazione privato. Essi possono implementare i metodi LoadAdapterState e SaveAdapterState, che vengono chiamati dall'implementazione della classe base MobileControl rispettivamente dei metodi LoadPrivateViewState e SavePrivateViewState.
Poiché lo stato di visualizzazione privato viene scritto nel client e non viene controllato dall'applicazione, i controlli mobili devono utilizzarlo nel modo più efficiente possibile. Nell'esempio che segue viene illustrata una tecnica per ottimizzare l'implementazione di un controllo.
protected override Object SavePrivateViewState()
{
Object baseState = base.SavePrivateViewState;
Object myState = GetMyState();
if (baseState == null && myState == null)
return null;
else if (myState == null)
return baseState;
else
return new Object[] { baseState, myState };
}
protected override void LoadPrivateViewState(Object state)
{
if (state is Object[])
{
Object[] arr = (Object [])state;
base.LoadPrivateViewState(arr[0]);
LoadMyState(arr[1]);
}
else if (state != null)
base.LoadPrivateViewState(state);
}
Se un controllo non dispone di uno stato di visualizzazione privato da salvare, fare in modo che il metodo SavePrivateViewState restituisca null. Non è necessario inoltre utilizzare lo stato di visualizzazione privato per salvare le proprietà impostate sui valori predefiniti.