none
Variaveis de Session dentro do ASPX com JavaScript RRS feed

  • Pergunta

  • Pessoal boa noite.....Salve-me em uma situação abaixo:

    Eu tenho uma função de script dentro do meu arquivo.aspx, só que eu gostaria de recuperar dentro dessa função abaixo as minhas variaveis de Session, como que eu faço isso, alguem pode me ajudar. Obrigado!

    Segue a

     

    <script language="javascript" type="text/javascript">

    função em Java script:

    function escreveDistancia() {

    calcrota('Distancia',$('#origem').val(),$('#destino').val());

    }</script>Fico no aguardo.Obrigado


    Fabricio

    sexta-feira, 8 de junho de 2012 01:24

Respostas

  • Estes comandos são utilizados em php, não server para asp.net.

    Que tal você inicializar as Session quando entra na pagina pela primera vez, como eu tinha dito la em cima no Page_Load():

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["origem_cli"] = "";
            Session["destino_cli"] = "";
        }
    }

    Depois você verificar se os valores é diferente que vazio:

    <script language="javascript" type="text/javascript">
        function escreveDistancia() {
    
            var origemjs = '<%= Session["origem_cli"].ToString()  %>';
            var destinojs = '<%= Session["destino_cli"].ToString()  %>';
    
            if (origemjs != '' && destinojs != '') {
                calcrota('Distancia', $('#origemjs').val(), $('#destinojs').val());
            }            
        }
    </script>

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    • Editado Vitor Mendes sábado, 9 de junho de 2012 00:53
    • Marcado como Resposta Harley Araujo segunda-feira, 11 de junho de 2012 13:18
    sábado, 9 de junho de 2012 00:53

Todas as Respostas

  • Existe duas maneiras de você recuperar uma sessão, ja imprimindo ele no seu javascript quando a pagina esta sendo renderizada:

    var isCoBrowse = <%= Session["Name"].ToString().ToLower() %>;
    
    if(!isCoBrowse) //disable controls
      $(":text,:checkbox,:radio").attr("disabled","disabled"); //standard.

    Ou acessando sua pagina via ajax.

    Veja estes links, talvez te ajude:
    http://stackoverflow.com/questions/1094229/asp-net-access-current-session-using-jquery
    http://stackoverflow.com/questions/856553/how-to-get-asp-net-session-value-in-jquery-method
    http://stackoverflow.com/questions/3239151/access-session-data-from-asp-net-page-using-jquery

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    • Sugerido como Resposta Samuel_Cazelli sexta-feira, 8 de junho de 2012 11:43
    sexta-feira, 8 de junho de 2012 02:18
  • Vitor não funcionou, eu fiz da mesma forma acima e da outra forma conforme os links tb e ele retorna o mesmo erro abaixo:

    Erro: Referência de objeto não definida para uma instância de um objeto.

    Isse erro ocorre na hora que pagina é carregada, entendeu.

    <script language="javascript" type="text/javascript">
            function escreveDistancia(){
            var origemjs = '<%Session["origem_cli"].ToString();%>';
            var destinojs ='<%Session["destino_cli"].ToString();%>';
            calcrota('Distancia', $('#origemjs').val() ,$('#destinojs').val() );
    }
    </script>

    Será que tem outra solução para isso? :(

    Att

    Fabricio Vale


    Fabricio

    sexta-feira, 8 de junho de 2012 13:34
  • Estas sessões realmente possuem valores ?? Eu não cheguei a testar, mais tente inicializar elas no Page_Load()

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    sexta-feira, 8 de junho de 2012 13:39
  • Vitor boa noite

    Funcionou sim, só que tem um detalhe eu gostaria de testar se essa session existe algum valor ou foi criada no código do Javascript e não no código do C#.

    Eu estou fazendo da seguinte forma e não esta funcionando.

    if (isset($_SESSION['origem_cli']) && empty($_SESSION['origem_cli']))
           {
            var origemjs = '<%Session["origem_cli"].ToString();%>';
            var destinojs ='<%Session["destino_cli"].ToString();%>';
            calcrota('Distancia', $('#origemjs').val() ,$('#destinojs').val() );
           }

    estranho pq o isset e o empty não funcionou?

    Mais uma vez peso ajuda :)

    Att

    Fabricio Vale


    Fabricio

    sábado, 9 de junho de 2012 00:17
  • Estes comandos são utilizados em php, não server para asp.net.

    Que tal você inicializar as Session quando entra na pagina pela primera vez, como eu tinha dito la em cima no Page_Load():

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Session["origem_cli"] = "";
            Session["destino_cli"] = "";
        }
    }

    Depois você verificar se os valores é diferente que vazio:

    <script language="javascript" type="text/javascript">
        function escreveDistancia() {
    
            var origemjs = '<%= Session["origem_cli"].ToString()  %>';
            var destinojs = '<%= Session["destino_cli"].ToString()  %>';
    
            if (origemjs != '' && destinojs != '') {
                calcrota('Distancia', $('#origemjs').val(), $('#destinojs').val());
            }            
        }
    </script>

    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/


    • Editado Vitor Mendes sábado, 9 de junho de 2012 00:53
    • Marcado como Resposta Harley Araujo segunda-feira, 11 de junho de 2012 13:18
    sábado, 9 de junho de 2012 00:53
  • Vitor boa tarde!

    Desculpa a demora. O código ficou da seguinte forma abaixo:

    Vitor agora me tira uma dúvida e ver se é possivel isso.

    Pergunta: Como que eu fasso para passar o valor de uma variavel em javascript que esta em vermelho logo abaixo para este código em vermelho abaixo:

    <asp:TextBox ID="txtkm" runat="server"></asp:TextBox>

    function escreveDistancia() {

      var origemjs = '<%= Session["origem_cli"].ToString()%>';

      var destinojs = '<%= Session["destino_cli"].ToString()%>';

      if (origemjs != '' && destinojs != '')

      {

         calcrota(origemjs, destinojs);

      }           

    }

    function calcrota(origem,fim) {

    var directionsservice = new google.maps.DirectionsService();

    var request = {

    origin: origem,

    destination: fim,

    travelMode: google.maps.DirectionsTravelMode['DRIVING']

        };

    directionsservice.route(request, function(response, status) {

    if (status == google.maps.DirectionsStatus.OK) {

    var returnvar=response.routes[0].legs[0].distance.value;

    document.getElementById("txtkm").innerHTML= returnvar/1000+" Km";

    }

                   });

    }

    Vitor mais uma vez obrigado, agora isso é possivel fazer.

    Fico no aguardo.

    Att

    Fabricio Vale


    Fabricio

    terça-feira, 12 de junho de 2012 18:08
  • Troque esta linha
    document.getElementById("txtkm").innerHTML= returnvar/1000+" Km";

    por esta:
    document.getElementById('<%=txtkm.ClientID%>').value = returnvar / 1000 + " Km";


    Vitor Mendes | Seu feedback é muito importante para todos!
    Visite o meu site: http://www.vitormendes.com.br/

    terça-feira, 12 de junho de 2012 18:17
  • Boa tarde vitor, então só para finalizar o assunto.

    Vitor mais uma vez desculpa a demora.

    Vamos lá, então pq eu não consigo passar o valor para esse código abaixo:

    <asp:TextBox ID="txtkm" runat="server" Enabled="False" Text='<%# Bind("Kmtotalinternet") %>'></asp:TextBox>

    Esse código é de um DetailsView

    Tentei fazer assim não funcionou:

    document.getElementById('<%=dvodsrotas.txtkm.ClientID%>').value = returnvar / 1000 + " Km";

    Fico no aguardo!

    Att

    Fabricio Vale


    Fabricio

    quarta-feira, 13 de junho de 2012 15:59
  • Pessoal boa tarde!

    Será que não existe nenhuma forma de fazer isso, conforme a pergunta acima. Por favor alguem pode me ajudar

    Como passar um valor de um Javascript para um textbox de um Details View?

    Att

    Fabricio Vale


    Fabricio

    quinta-feira, 14 de junho de 2012 17:17
  • Pessoal eu conseguir fazer dessa forma abaixo e funcionou:

    document.getElementById('<%=((TextBox)dvodsrotas.FindControl("txtkm")).ClientID%>').value = returnvar / 1000;

    Só que tem um detalhe na hora que eu rodo o meu DAO para gravar os dados ele não grava nada.

    Pq?

    Segue a string sql abaixo:

    INSERT INTO rotas(IdKmcli1, IdKmcli2, Kminicio , Kmfinal, Kmtot, Idfuncrota, Assunto, Percurso1, Bloqueado, Datarota, Kmtotalinternet, Kmnomecli1, Kmnomecli2, Placa)Values (3485,2848,10,20,10,'13','OK','OK','','20120618','0','ANA CLARISSA DOS SANTOS MATOS','ADEB LINE COMERCIO DE PRODUTOS MEDICOS LTDA.','KNM5172');

    O valor que esta em vermelho seria a Kmtotalinternet. O script preeche o campo do textbox mas agora pq o valor não vai para a minha string?

    Agora existe outra forma de gravar esse valor no banco?

    Fico no aguardo de ajuda.

    Att

    Fabricio Vale


    Fabricio

    quinta-feira, 14 de junho de 2012 18:01
  • Pessoal boa tarde!

    Descobrir o campo estava desabilitado, agora o procedimento funcionou corretamente, agora eu consigo gravar na minha base e passar o valor de script para servidor. Pessoal do Forum mais uma vez obrigado pela ajuda e desculpa o tormento. Vitor obrigado pela força.

    Item concluido.

    Att

    Fabricio Vale


    Fabricio

    quinta-feira, 14 de junho de 2012 19:35