none
Como trocar imagem/url do ImageMap após clicar sobre um dos HotSpots? RRS feed

  • Pergunta

  • Eu tenho um ImageMap que mostra uma imagem que tem um ID, por exemplo, 64, o nome da imagem é 64.jpg. Quando clicar sobre o HotSpot da direita eu preciso que ele mude a imagem e vá para a de ID 65, se clicar na esquerda que volte uma imagem para trás e assim em diante. Para isso estou passando o valor da imagem atual pela QueryString, usando o NavigateUrl dos HotSpots, e somando 1 ou retirando 1 para prosseguir. A dúvida maior é como colocar uma variável no NavigateUrl para que ele sempre pegue o ID da imagem atual, pois agora eles estão fixos. Algo assim:

    NavigateUrl="pagina.aspx?ID=64"

    Eu queria colocar uma variável do Code Behind no lugar desse 64 para poder funcionar mais fluidamente.

    Agradeço a atenção.

    terça-feira, 3 de julho de 2012 13:13

Respostas

  • Erick,

    Como eu lhe disse, não existe maneira de passar uma variavel por querystring e resgatar o valor dela por request.

    O que você passa na querystring é o proprio valor e não uma variavel que represente o valor, entendeu?

    O que você pode fazer:

    int variavel = 64;
    
    NavigateUrl = "pagina.aspx?ID=" + variavel;
    
    int variavelUrl = Convert.ToInt32(Request.Querystring("ID"));
    
    variavelUrl += 1;
    
    Imagem.ImageUrl = "img/pasta/" + variavelUrl + ".jpg";

    Não é muito diferente do que está fazendo...

    Usando session:

    Session["variavel"] = Convert.ToString(64);
    
    NavigateUrl = "pagina.aspx";
    
    int variavelUrl = Convert.ToInt32(Session["variavel"]);
    
    variavelUrl += 1;
    
    Imagem.ImageUrl = "img/pasta/" + variavelUrl + ".jpg";

    Ajudou em algo?

    Se sim, marque uma resposta, caso não poste sua dúvida aqui.


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           


    • Editado EduardoPiresMVP terça-feira, 3 de julho de 2012 16:26
    • Sugerido como Resposta erickalves05 terça-feira, 3 de julho de 2012 18:34
    • Marcado como Resposta ErickAlves terça-feira, 3 de julho de 2012 18:35
    terça-feira, 3 de julho de 2012 16:24

Todas as Respostas

  • Erick,

    Pela querystring você só consegue transportar texto, não dá para usar uma variavel.

    Por que não controla os dados por sessão?

    Abç...


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    terça-feira, 3 de julho de 2012 13:46
  • Até pensei nisso, mas não tenho tanta prática ainda, estou começando agora com essa parte Web. Mas no caso, a variável é uma string, algo tipo "65". Eu queria era, mais ou menos isso.

    NavigateUrl="pagina.aspx?ID=variavelAqui"

    Essa variavelAqui está no Code Behind, onde eu faço o acréscimo ou decréscimo nela, dependendo do HotSpot clicado.

    Pois quando eu clico no HotSpot direito/esquerdo, eu chamo a mesma pagina em que estou, mas para mudar a imagem do ImageMap eu uso a QueryString. Fica tipo assim no Code Behind:

    variavelQueVemDaQueryString += 1; Imagem.ImageUrl = "img/pasta/" + variavelQueVemDaQueryString + ".jpg";

    Obrigado pela atenção. Irei ler mais sobre Sessions.

    Até.

    terça-feira, 3 de julho de 2012 14:03
  • Erick,

    Como eu lhe disse, não existe maneira de passar uma variavel por querystring e resgatar o valor dela por request.

    O que você passa na querystring é o proprio valor e não uma variavel que represente o valor, entendeu?

    O que você pode fazer:

    int variavel = 64;
    
    NavigateUrl = "pagina.aspx?ID=" + variavel;
    
    int variavelUrl = Convert.ToInt32(Request.Querystring("ID"));
    
    variavelUrl += 1;
    
    Imagem.ImageUrl = "img/pasta/" + variavelUrl + ".jpg";

    Não é muito diferente do que está fazendo...

    Usando session:

    Session["variavel"] = Convert.ToString(64);
    
    NavigateUrl = "pagina.aspx";
    
    int variavelUrl = Convert.ToInt32(Session["variavel"]);
    
    variavelUrl += 1;
    
    Imagem.ImageUrl = "img/pasta/" + variavelUrl + ".jpg";

    Ajudou em algo?

    Se sim, marque uma resposta, caso não poste sua dúvida aqui.


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           


    • Editado EduardoPiresMVP terça-feira, 3 de julho de 2012 16:26
    • Sugerido como Resposta erickalves05 terça-feira, 3 de julho de 2012 18:34
    • Marcado como Resposta ErickAlves terça-feira, 3 de julho de 2012 18:35
    terça-feira, 3 de julho de 2012 16:24
  • Muito obrigado Eduardo, tirou minhas dúvidas e ainda me apresentou à Session, que me será útil mais pra frente. Melhor que isso impossível.
    terça-feira, 3 de julho de 2012 18:37
  • Bacana!

    Sessions são legais, mas precisa saber quando e como usar, já peguei vários sistemas com 1000 sessions ativas, fica uma zona para dar manutenção, fora que infla a memória do IIS.

    Com base nisso, sempre pense bem na hora de usar sessions, procure projetar bem as funcionalidades antes de sair criando uma session para cada item que aparecer.

    O proximo programador do sistema agradece :) rs...


    É possível sim! Ponha isso na sua cabeça. É possível. "Steve Jobs"

    Eduardo Pires
    www.eduardopires.net.br

           

    terça-feira, 3 de julho de 2012 18:43