none
Redirecionar RRS feed

  • Pergunta

  • Em uma página de cadastro é inserido um código e então liberado o cadastro. Preciso chamar um outra página de cadastro reserva se o número de inscritos no grupo já estiver lotado. 

    Hoje está assim:

    protected void Page_Load(object sender, EventArgs e)
        {
            DateTime dataFinalVip = Convert.ToDateTime(ConfigurationManager.AppSettings["DATAFinalVip"]);
    
            if (DateTime.Today > dataFinalVip)
                Response.Redirect("Cadastro.aspx");
        }

    Se está dentro do periodo de validade do codigo vip ele redireciona para o cadastro. E também verifica a validade do código:

    protected void btnEnviar_Click(object sender, ImageClickEventArgs e)
        {
            bool existeCod = BO.Codigo.VerificaExisteCodigo(txtCodigo.Text);
    
            if (existeCod)
            {
                Session.Contents["ValidouCodigo"] = txtCodigo.Text;
                Response.Redirect("Cadastro.aspx");
            }
            else
            {
                txtCodigoInvalido.Visible = true;
            }
        }

    Só que preciso verificar se já lotou o grupo de inscitos e se já está lotado redirecionar para a página "CadListaEspera.aspx"

    quinta-feira, 10 de janeiro de 2013 13:48

Respostas

  • Continua confuso Rodrigo, o que você precisa exatamente?

    Se for o que entendi, é só você fazer:

    if(NumeroVagasEmAberto() == 0){

    Response.Redirect("CadListaEspera.aspx"); }


    • Marcado como Resposta Rodrigo Waldow segunda-feira, 14 de janeiro de 2013 11:19
    quinta-feira, 10 de janeiro de 2013 18:15

Todas as Respostas

  • protected void Page_Load(object sender, EventArgs e)
        {
            DateTime dataFinalVip = Convert.ToDateTime(ConfigurationManager.AppSettings["DATAFinalVip"]);
    
            if (DateTime.Today > dataFinalVip)
                if (objBOReserva.NumeroVagasEmAberto() == 0)
                    Response.Redirect("CadListaEspera.aspx");
                else
                Response.Redirect("Cadastro.aspx");
        }
    
        protected void btnEnviar_Click(object sender, ImageClickEventArgs e)
        {
            bool existeCod = BO.Codigo.VerificaExisteCodigo(txtCodigo.Text);
            objVOReserva.IdGrupo = 
            objBOReserva.objVO = objVOReserva;
            if (existeCod)
            {
                Session.Contents["ValidouCodigo"] = txtCodigo.Text;
                if (objBOReserva.NumeroVagasEmAberto() == 0)
                    Response.Redirect("CadListaEspera.aspx");
                else
                    Response.Redirect("Cadastro.aspx");
            }
            else
            {
                txtCodigoInvalido.Visible = true;
            }
        }
    Por enquanto consegui chegar até aqui...
    Alguém poderia me ajudar?
    quinta-feira, 10 de janeiro de 2013 17:20
  • Cara, não entendi bem. Você está querendo trasnferir valores de um controle em uma página para a outra, é isso mesmo? Se for isso, use Server.Transfer ao invés de Response.Redirect, aí você consegue pegar o valor de um dado controle e jogar em outra página. Caso não seja isso, favor dar uma explicada mais detalhada.
    quinta-feira, 10 de janeiro de 2013 17:39
  • Vou colocar o código NumeroVagasEmAberto
    ublic int NumeroVagasEmAberto()
            {
                try
                {
                    DataTable dt = SqlHelper.ExecuteDataset(sqlConn, CommandType.StoredProcedure, "proc_validaDisponibilidadeReserva",
                    new SqlParameter("@IdGrupo", objVO.IdGrupo)).Tables[0];
    
                    if (dt.Rows.Count > 0)
                    {
                        int resultado = Convert.ToInt32(dt.Rows[0][0]);
                        if (resultado > 0)
                            return resultado;
                        else
                            return 0;
                    }
                    else
                    {
                        // NÃO EXISTE NENHUMA VAGA
                        return 0;
                    }
                }
    Através desse método consulto se há vagas em um grupo. Se não há vagas redireciono para o site CadListaEspera.aspx
    quinta-feira, 10 de janeiro de 2013 17:55
  • Continua confuso Rodrigo, o que você precisa exatamente?

    Se for o que entendi, é só você fazer:

    if(NumeroVagasEmAberto() == 0){

    Response.Redirect("CadListaEspera.aspx"); }


    • Marcado como Resposta Rodrigo Waldow segunda-feira, 14 de janeiro de 2013 11:19
    quinta-feira, 10 de janeiro de 2013 18:15
  • Já consegui resolver aqui. Obrigado pela ajuda. Era isso que o Guilherme da Luz fez mas eu estava com outro problema. Porque o idGrupo estava sempre null.
    protected void Page_Load(object sender, EventArgs e)
        {
            DateTime dataFinalVip = Convert.ToDateTime(ConfigurationManager.AppSettings["DATAFinalVip"]);
    
            if (DateTime.Today > dataFinalVip)
                if (objBOReserva.NumeroVagasEmAberto() == 0)
                    Response.Redirect("CadListaEspera.aspx?idGrupo=0");
                else
                Response.Redirect("Cadastro.aspx");
        }
    
        protected void btnEnviar_Click(object sender, ImageClickEventArgs e)
        {
            bool existeCod = BO.Codigo.VerificaExisteCodigo(txtCodigo.Text);
    
            int idGrupo = 0;
            objVOReserva.IdGrupo = idGrupo;
            objBOReserva.objVO = objVOReserva;
    
            if (existeCod)
            {
                Session.Contents["ValidouCodigo"] = txtCodigo.Text;
                if (objBOReserva.NumeroVagasEmAberto() == 0)
                    Response.Redirect("CadListaEspera.aspx?idGrupo=0");
                else
                    Response.Redirect("Cadastro.aspx");
            }
            else
            {
                txtCodigoInvalido.Visible = true;
            }
        }
    Fiz assim eresolveu! Obrigado mais uma vez
    quinta-feira, 10 de janeiro de 2013 19:27
  • Não esqueça de finalizar o tópico.
    sexta-feira, 11 de janeiro de 2013 12:40