none
Formulario obrigatorio RRS feed

  • Pergunta

  • Pessoal,

    Tenho um formulario de 3 etapas.
    se o mesmo foi preenchido desde a parte1 (pagina1.aspx), parte2 (pagina2.aspx) e parte3(pagina3.aspx) o formulario funcionara sem problemas.
    Isto pq durante a 1a parte eu seto algumas sessions.

    Agora se a pessoa ja quer dar uma de esperta e entrar na parte2 ou parte3, como posso forca-la a voltar pra parte1 ?

    1. Checando Session e usando redirect ?
    2. Checando a pagina anterior acessada (como faria isso ?)

    O que seria melhor ?

    Valeu

    sexta-feira, 26 de outubro de 2012 04:54

Respostas

  • Olá,

    Qual o esquema que você tá fazendo isso? Por response.redirect ou server.transfer?

    Por server.tranfer, é só verificar se a página anterior é nula. Já com response.redirect, o objeto referente a página anterior sempre é nulo e você terá de fazer a verificação por querystring, cookie ou por session.

    Pra acessar a página anterior utilizando o server.tranfer, você deve primeiro setar uma referência indicando qual deve ser a página anterior esperada. Você faz isso no aspx da página:

    <%@ PreviousPageType VirtualPath="~/Site/CadastroEmpresa.aspx" %>

    Aí no codebehind da página, você pode pegar as propriedades da página anterior e verificar se é nula ou não pelo objeto:

    Page.PreviousPage (Disponível no evento Page_Load)

    Este objeto só será não nulo na primeira requisição da página. Logo se você realizar um postback, e voltar a verificar o objeto ele já será nulo.

    Você conseguirá instanciar qualquer elemento da página anterior utilizando o objeto Page.PreviousPage. Você pode declarar propriedades na página que é redirecionada pelo server.transfer. Dessa forma, você conseguirá acessar a propriedade exata da página anterior sem precisar realizar um findcontrol e cast.

    • Marcado como Resposta AGA Neto domingo, 28 de outubro de 2012 20:08
    sexta-feira, 26 de outubro de 2012 11:33
  • Bara, eu deixaria na Sessão 2 booleans chamados Etapa1Concluida e Etapa2Concluida.

    No Load da pagina 2 eu veria se a Etapa1Concluida == false daria um Redirect pra pagina 1. No load da Pagina3 eu faria a mesma coisa, se  Etapa2Concluida == falsedaria um Redirect pra pagina 2.

    Se ajudou não esqueça de marcar ;)

    • Marcado como Resposta AGA Neto domingo, 28 de outubro de 2012 20:08
    sexta-feira, 26 de outubro de 2012 12:36

Todas as Respostas

  • Olá,

    Qual o esquema que você tá fazendo isso? Por response.redirect ou server.transfer?

    Por server.tranfer, é só verificar se a página anterior é nula. Já com response.redirect, o objeto referente a página anterior sempre é nulo e você terá de fazer a verificação por querystring, cookie ou por session.

    Pra acessar a página anterior utilizando o server.tranfer, você deve primeiro setar uma referência indicando qual deve ser a página anterior esperada. Você faz isso no aspx da página:

    <%@ PreviousPageType VirtualPath="~/Site/CadastroEmpresa.aspx" %>

    Aí no codebehind da página, você pode pegar as propriedades da página anterior e verificar se é nula ou não pelo objeto:

    Page.PreviousPage (Disponível no evento Page_Load)

    Este objeto só será não nulo na primeira requisição da página. Logo se você realizar um postback, e voltar a verificar o objeto ele já será nulo.

    Você conseguirá instanciar qualquer elemento da página anterior utilizando o objeto Page.PreviousPage. Você pode declarar propriedades na página que é redirecionada pelo server.transfer. Dessa forma, você conseguirá acessar a propriedade exata da página anterior sem precisar realizar um findcontrol e cast.

    • Marcado como Resposta AGA Neto domingo, 28 de outubro de 2012 20:08
    sexta-feira, 26 de outubro de 2012 11:33
  • Bara, eu deixaria na Sessão 2 booleans chamados Etapa1Concluida e Etapa2Concluida.

    No Load da pagina 2 eu veria se a Etapa1Concluida == false daria um Redirect pra pagina 1. No load da Pagina3 eu faria a mesma coisa, se  Etapa2Concluida == falsedaria um Redirect pra pagina 2.

    Se ajudou não esqueça de marcar ;)

    • Marcado como Resposta AGA Neto domingo, 28 de outubro de 2012 20:08
    sexta-feira, 26 de outubro de 2012 12:36