Usuário com melhor resposta
Usando Master Pages.

Pergunta
-
Bom Dia, tenho um problema que está me prendendo muito.
Seguinte, tenho um projeto de Web e uso Master Pages e algumas funções JavaScripts, o problema é o seguinte, tenho uma função em um botão na minha página, quando clico nele, ele gera o seguinte erro: "Erro em tempo de execução do Microsoft JScript: Objeto necessário".
function Acompanhamento(clip) { var id_clip = document.getElementById("hddTpClippingAcompanhamento"); var url = "Acompanhamento/Listagem.aspx?CLIP=" + clip + "&ID_CLIPPING=" + id_clip.value; //S - Tem clipping no hidden | N - Não tem clipping no hidden window.open(url, 'Acompanhamento_Listagem', 'Width=550,Height=530,status=false,help=no,left=0,right=0,resizable=no,status=no,scroll=no'); }
O que estou percebendo é que o Hidden não está sendo pego, e não consigo achar a solução para tal erro.
Vou debugando o programa, e esse id_clip retorna pra mim como "null" quando o certo seria voltar "object", para ai sim pegar o hidden.
Declaração do meu hidden, ele está dentro de um form:
<input type="hidden" id="hddTpClippingAcompanhamento" name="hddTpClippingAcompanhamento" runat="server" />
Alguém sabe o que pode ser? Nunca trabalhei com Master Pages e estou encontrando dificuldades.
Aguardo ajuda.
Vaaleu !
Respostas
-
Hi,
para resolver isso faca o seguinte coloque o hidden dentro de um div assim:
<div id="div_hddTpClippingAcompanhamento"> <input type="hidden" id="hddTpClippingAcompanhamento" name="hddTpClippingAcompanhamento" runat="server" /> </div>
e na sua funcao javascript voce coloca assim:
... var id_clip = document.getElementById("div_hddTpClippingAcompanhamento").children[0]; ...
porque isso?
quando voce coloca seu hidden como runat="server" ele vai ser compilado pelo servidor e o servidor vai mudar o id dele. assim voce nao vai poder pegar ele pelo id.
dessa forma que eu propus, colocando ele dentro de um div voce pode pegar o div pelo id e pegar ele atravez do children[0].
Att,
Adriel Codeco Silva
Email: adriel.silva@uppercase.com.br
MSN: adrielcodeco@hotmail.com
Blog: adrielcodeco.wordpress.com
Uppercase – www.uppercase.com.br- Marcado como Resposta Eder CostaModerator quinta-feira, 14 de abril de 2011 19:59
Todas as Respostas
-
Quando vc coloca a tag Runat="Server" o servidor costuma alterar o clientId do controle.
Abra o HTML e veja se o cliente id continua "exatamente o mesmo". Isso pode estar fazendo seu controle não ser acessado pelo DOM(JAVA Script
Aguardo seu feedback.
Tiago Santos
Caso este poste seja útil não deixe de marca-lo como tal.
Tiago Novaes (MSP, MCP)- http://www.atitudebrasil.net - Blog: http://www.atitudebrasil.net/blogs/tiagosantos- Sugerido como Resposta Eder CostaModerator quinta-feira, 14 de abril de 2011 19:59
-
Hi,
para resolver isso faca o seguinte coloque o hidden dentro de um div assim:
<div id="div_hddTpClippingAcompanhamento"> <input type="hidden" id="hddTpClippingAcompanhamento" name="hddTpClippingAcompanhamento" runat="server" /> </div>
e na sua funcao javascript voce coloca assim:
... var id_clip = document.getElementById("div_hddTpClippingAcompanhamento").children[0]; ...
porque isso?
quando voce coloca seu hidden como runat="server" ele vai ser compilado pelo servidor e o servidor vai mudar o id dele. assim voce nao vai poder pegar ele pelo id.
dessa forma que eu propus, colocando ele dentro de um div voce pode pegar o div pelo id e pegar ele atravez do children[0].
Att,
Adriel Codeco Silva
Email: adriel.silva@uppercase.com.br
MSN: adrielcodeco@hotmail.com
Blog: adrielcodeco.wordpress.com
Uppercase – www.uppercase.com.br- Marcado como Resposta Eder CostaModerator quinta-feira, 14 de abril de 2011 19:59
-