Pergunta

Na minha jornada para as profundezas de personalizado ASP.NET desenvolvimento de controle eu sou, obviamente, começando a minha cabeça em torno do ASP.NET modelo de PostBack e como ela afeta o desenvolvimento de controle.

Eu entendo que os controles não têm "tempo de vida" na ASP.NET e, portanto, deve ser re-inicializado em cada carregamento de página.Podemos superar esta por persistir os objetos de valores/parâmetros para o ViewState.

Muitos artigos que li, portanto, sugiro não utilizar o PostBack, pois isso pode adicionar uma sobrecarga considerável para a Página. Eu não estou olhando para como desabilitá-lo, eu sei.

O que eu estou procurando é:

Que alternativas temos para utilizar o modelo de PostBack para inicializar os controles?

Eu sei que nós poderia use a QueryString, mas que parece muito confuso, e, obviamente, não é confiável.

Idealmente, você poderia me dar uma visão geral da arquitetura/design de uma abordagem diferente e o pro/con dele..

Muito obrigado ^_^

Foi útil?

Solução

Bem, o Estado da Sessão é uma solução do lado do servidor, com a sua própria pilha de sujeira para lidar com se você quiser evitar ViewState completamente.Realmente entretanto, com o uso de ViewState em um controle personalizado é tudo lindo e de bom apenas ser exigente sobre o que você armazene somente armazenamento de deltas de declarado o estado de controle, não guarde qualquer coisa que você está indo para obter nova colocação de qualquer maneira (e.g.a partir de uma DB chamada), etc.

Outras dicas

Você tem que armazenar os valores em algum lugar, então você está limitado para a seqüência de caracteres de consulta e campos de formulário ocultos.Se você relacionam-se que para HTTP, basicamente, em ambos os parâmetros GET ou POST.

Eu suponho que você poderia usar cookies, mas que seria muito confuso.

  1. Armazenar o estado do objeto no contexto de sessão:isto irá transferir o peso de se manter o estado do cliente para o servidor, que pode ser aceitável para a pequena escala de intranet aplicativos.Para sites na capital, e a Internet, isso não funciona;

  2. AJAX-permitir o seu controle:neste caso, somente do estado de alterações devem ser colocados de volta.Escolher o framework é a chave aqui;ver http://www.asp.net/ajax/ajaxcontroltoolkit/samples/ oficial de MS abordagem;muitos outros são possíveis.

Se você está realmente à procura de alternativas para o modelo de PostBack completamente, então eu gostaria de sugerir a investigar o ASP.NET MVC Framework.Eu gostaria de chutar WebForms para a calçada e fazer todas as minhas coisas em MVC, mas, infelizmente, código legado é um tarbaby e reescrever quase nunca é a resposta, então eu ligar em diante...

Eu acho que você ainda mis-entender os controles um pouco.Controles só tem o problema que você descreve quando você adicioná-los para a página dinamicamente.Se você declarar seus controles inicial no código aspx, em seguida, construir junto com a página.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top