Fazer uma PerguntaFazer uma Pergunta
 

RespondidoSession e .ascx ?so funciona no 2° clique.

  • quarta-feira, 4 de novembro de 2009 12:29Pvitor_D2 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Estou com o seguinte problema,
    tenho uma session que é carregada no meu .ascx  e com essa session carregada eu pego os valores dela dentro da minha página.

    o problema é que quando clico num botão dentro do .ascx para carregar a session, no primeiro postback da página a session não é carregada....
    quando clico no botão novamente a session é carregada...
    alguém pode me explicar o pq isso acontece... e se alguem tem alguma solução para este problema ???

    Obrigado!

Respostas

  • quinta-feira, 5 de novembro de 2009 7:02Dennes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido

    Paulo,

    Você carrega a variável de sessão no click do linkbutton, porém você lê a variável de sessão no load da página.

    Quer dizer : Você lê a variável de sessão antes de atribuir o seu valor, por isso a mudança de valor só tem efeito no 2o clique.

    Existe algo sendo feito após o page_load com base na variável meuidioma que você não mostrou e é esse "algo" que você está dizendo que só acontece no 2o clique.

    A saida : "disparar" esse "algo" que você não mostrou também no click do linkbutton. Faça com que seja um disparo de método que você possa chamar pelo linkbutton.

    Só para completar : Creio que o linkbutton está dentro do user control, o user control pode precisar receber algum parâmetro para fazer o disparo da ação que você deseja.

    []'s
    Dennes
    http://twitter.com/Dennes


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp

Todas as Respostas

  • quarta-feira, 4 de novembro de 2009 12:32kauebranco Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Isso depende do lugar no código que você colocou o carregamento da Session.

    Você colocou no Page_Load ou no Click do botão ? Nos mostre o local(e o código).
  • quarta-feira, 4 de novembro de 2009 12:42Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Coloque o trecho de código com esse método.
  • quarta-feira, 4 de novembro de 2009 12:48Pvitor_D2 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Contém Código
    código do meu .ascx
        Protected Sub LinkButtonPT_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles LinkButtonPT.Click
            Session("Idioma") = "pt-BR"
            'InitializeCulture()
        End Sub
    
    código no load da minha página

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not Page.IsPostBack Then
               dim MeuIdioma as string
               MeuIdioma = Session("Idioma")
            End If
        End Sub
    
  • quarta-feira, 4 de novembro de 2009 12:52kauebranco Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    De acordo com o seu código ao entrar na tela realmente a Session ainda não tem valor nenhum.

    E depois de clicar no botão ela é carregada, mais dai a variável MeuIdioma não será mais preenchida pois você colocou
    o preenchimento dela dentro do "If Not Page.IsPostBack",
    que significa que esse código só é executado na primeira vez que você entra na tela.

    Qual está sendo o problema realmente ? O que você quer fazer que não está conseguindo ?
  • quarta-feira, 4 de novembro de 2009 12:52Erysson Barros Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Fale,

    Coloca no Page_Load do .ascx
    Session("Idioma") = "pt-BR"

    Abraço!


    Se a resposta solucionar sua dúvida, favor - Votar como Útil Abraço!
  • quarta-feira, 4 de novembro de 2009 13:05Pvitor_D2 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     

    Barros, não funcionou.

  • quarta-feira, 4 de novembro de 2009 13:09Pvitor_D2 Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Kaue, o problema é que um variavél dentro da minha página não recebe o valor da Session criada no meu .ascx de primeira...
    so recebe o valor quando clico na segunda vez!
  • quarta-feira, 4 de novembro de 2009 13:16Seilor Bonancio Junior Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     
    Pvitor, o certo seria vc criar uma classe para fazer esse gerenciamento de language, que ae ela faz o gerenciamento da sua session, eu fiz um projetinho para isso já, mais para vc testar crie uma no appCode e faça o teste use o partner singleton para isso, pois vc só terá uma instancia para essa classe.
  • quinta-feira, 5 de novembro de 2009 7:02Dennes Medalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuárioMedalhas de usuário
     Respondido

    Paulo,

    Você carrega a variável de sessão no click do linkbutton, porém você lê a variável de sessão no load da página.

    Quer dizer : Você lê a variável de sessão antes de atribuir o seu valor, por isso a mudança de valor só tem efeito no 2o clique.

    Existe algo sendo feito após o page_load com base na variável meuidioma que você não mostrou e é esse "algo" que você está dizendo que só acontece no 2o clique.

    A saida : "disparar" esse "algo" que você não mostrou também no click do linkbutton. Faça com que seja um disparo de método que você possa chamar pelo linkbutton.

    Só para completar : Creio que o linkbutton está dentro do user control, o user control pode precisar receber algum parâmetro para fazer o disparo da ação que você deseja.

    []'s
    Dennes
    http://twitter.com/Dennes


    Dennes - Se resolveu, classifique a mensagem, por favor - [http://www.bufaloinfo.com.br] NOVO DVD Segurança no ASP.NET : http://www.bufaloinfo.com.br/LearingSeriesSegurancaASPNET2.asp