Usuário com melhor resposta
Variaveis de Session dentro do ASPX com JavaScript

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
- Movido Levi DomingosModerator sexta-feira, 8 de junho de 2012 10:32 (De:C#)
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
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-jqueryVitor 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
-
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
-
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/ -
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
-
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
-
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
-
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/ -
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
-
-
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
-
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