Estado de exibição particular de suporte
Juntamente com o estado de exibição do aplicativo, é possível manter informações de estado particular para um controle móvel do ASP.NET.Quando um controle móvel mantém informações internas, é recomendável que você não depende as configurações do aplicativo para manter essas informações.Escreva em vez disso, o aplicativo para que ele use estado de exibição particular.São exemplos de estado de exibição particular do formulário atualmente ativo em uma página, a paginação informações sobre um formulário e específicas do dispositivo nas decisões tomadas pelo adaptador do controle.
Estado de exibição particular é diferente do estado de exibição do aplicativo de várias maneiras.Ele é escrito com a página processada, em vez de salvo no estado de sessão.Ele também não pode ser desabilitado pelo aplicativo.E como todo o estado particular é gerado dinamicamente, a semântica de acompanhamento usada para o estado de exibição do aplicativo não se aplicam ao estado de exibição particular.
Para usar estado de exibição particular, um controle deve substituir o LoadPrivateViewState e SavePrivateViewState métodos. Eles funcionam da mesma forma sistema autônomo a LoadViewState e SaveViewState métodos. Não escreva seus controles para usar o aplicativo modo estado mecanismos, tais sistema autônomo a ViewState propriedade de estado, para salvar sistema autônomo configurações que fazem parte do estado de exibição particular.
Adaptadores de controle também podem participar em estado de exibição particular.Um adaptador de controle pode implementar o LoadAdapterState e SaveAdapterState métodos. Estes são chamados do MobileControl implementação da classe de base do LoadPrivateViewState e SavePrivateViewState métodos, respectivamente.
sistema autônomo estado de exibição particular é gravado para o cliente ou não está sob controle do aplicativo, sistema autônomo controles móveis deverá usar estado de exibição particular tão eficiente quanto possível.O exemplo a seguir ilustra uma técnica para otimizar a implementação do controle.
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 um controle não tem qualquer estado de exibição particular para salvar, retornar null do SavePrivateViewState método. Note também que você não precisa usar o estado de exibição particular para salvar propriedades que são conjunto para seus valores padrão.