Componente não aparece no código HTML

.NET

15/12/2009

Boa Tarde Pessoal,

Estou com um problema aqui que está me deixando maluco... Estou desenvolvendo em ASP.NET e tenho um componente que, hora deve ser visível e hora deve ser invisível...

O grande problema é que quando utilizo a propriedade .Visible = "true" (TextBox e Label), o componente aparece na tela corretamente, no entanto, quando peço ao navegador (IE e Firefox) para exibirem o código fonte, este componente não aparece... Se eu retirar do fonte os trechos onde é utilizada a propriedade Visible, funciona corretamente...

Alguém faz idéia do que possa ser??

Obrigado!!
Cassiano Gil

Cassiano Gil

Curtidas 0

Respostas

Gboex -

Gboex -

15/12/2009

Boa tarde

Basicamente se você quiser esconder o objeto e conseguir ver o seu código fonte, deverá manipulá-lo via CSS, como por exemplo style="display:none". A diferença consiste na renderização do objeto, quando utiliza-se as propriedades do CSS para esconder (o objeto é montado mas não é exibido). Já configurando Visible = false isto não ocorre, pois é objeto é impedido de ser "montado" na parte cliente da aplicação.

Já passei por uma situação e vi na prática mais ou menos isto, tive que esconder um Panel e quando quis deixá-lo visível via java script eu não consegui. Logo, tive que substituir visible=false, por:

Panel.Style.Add(HtmlTextWriterStyle.Display, "inline");  // Deixar visível
Panel.Style.Add(HtmlTextWriterStyle.Display, "none");  // Deixar invisível

Referência: http://forums.asp.net/p/1412978/3104616.aspx

Att,


GOSTEI 0
Cassiano Gil

Cassiano Gil

15/12/2009

  Juliano,

Acho que não é bem isso não... Em determinado momento eu quero deixá-lo invisível, mas no momento em que estou visualizando o fonte do html sua propriedade Visible está definida como TRUE e mesmo assim não aparece no fonte. OBS: Aparece na página, mas no HTML fonte não... Para solucionar estou utilizando ENABLED ao invés de VISIBLE... No entanto, gostaria de um esclarecimento a respeito, se possível..

Obrigado!!
GOSTEI 0
Netasper

Netasper

15/12/2009

Amigo,   Este comportamento é absolutamente normal, para parar um teste, tente usar javascript assim vc vera o controle no codigo fonte:   document.getElementByID("nomedoseucontrole").style.visibility = "hidden"; ou document.getElementByID("nomedoseucontrole").style.visibility = "visible";   Da forma acima aparece, mas se usar:   document.getElementByID("nomedoseucontrole").display = "block"; ou document.getElementByID("nomedoseucontrole").display = "none";   Não aparece... ´[]s
GOSTEI 0
Cassiano Gil

Cassiano Gil

15/12/2009

hummmmm...

Quer dizer que quando utilizo a propriedade Visible, independente de True ou False ele sempre vai definir o componente como


document.getElementByID("nomedoseucontrole").style.visibility = "hidden";

???


Obrigado!!
GOSTEI 0
POSTAR