Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Gustavo Gondim

Problemas com FindControl()

Recommended Posts

Boa tarde!

Estou trabalhando em um projeto Web Application no VS2008 e estou com problemas no método FindControl de um painel.

 

Vou explicar melhor como desenvolvi pois não tenho o código em mãos.

 

Criei um formulário onde tenho um painel (Panel) e, no evento Page_Load(), construí um código que retira informações de um BD e insere controles do tipo RadioButtonList, Label, Literal e TextBox neste Panel. Neste mesmo evento, defino um Id diferente para cada um (Controle.Id).

 

O problema acontece numa Sub que criei para o evento Click de um botão, onde a rotina supostamente deveria encontrar os controles que criei no Load da página e retirar suas informações, adicionando-as no BD. Quando essa Sub é executada pelo botão, o procedimento não consegue encontrar esses os controles criados. Não me lembro o nome do erro, mas ele simplesmente não encontra os controles pelo Id.

 

Assim, inseri breakpoints por todo o código e também vi pelo QuickWatch o valor de cada controle. O código funciona perfeitamente ao inserir os controles no Panel, mas este Panel está com um valor de .Controls.Count menor do que o número de controles que inseri. Inclusive um dos controles contados dentro(?) deste Panel é o ContentPlaceHolder que o envolve.

 

Alguém poderia me explicar por que os controles não aparecem adicionados no código, mas no cliente sim? E como resolver esta sisutação?

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi

 

Você preenche no load os dados vindos do banco nos controles, e quando clica no botão atualiza o banco

 

Caso seja isso você precisa fazer o tratamento do postback

If not Ispostback then
	'preenche os campo
end if 

Não me lembro agora de cara, por isso indico que você dê uma olhada no ciclo de vida da página..

 

Mas se a minha memória não me trai, no load os controles ainda não tão 'criados' não tenho certeza,

 

Se isso ocorrer seja interessante você usar os eventos Binding...

 

Desculpe-me a falta de uma opinião mais incisiva, contudo estou a um ano trabalhando apenas com desktop e tô meio enferrujado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se eu entendi

 

Você preenche no load os dados vindos do banco nos controles, e quando clica no botão atualiza o banco

 

Caso seja isso você precisa fazer o tratamento do postback

If not Ispostback then
	'preenche os campo
end if 

Não me lembro agora de cara, por isso indico que você dê uma olhada no ciclo de vida da página..

 

Mas se a minha memória não me trai, no load os controles ainda não tão 'criados' não tenho certeza,

 

Se isso ocorrer seja interessante você usar os eventos Binding...

 

Desculpe-me a falta de uma opinião mais incisiva, contudo estou a um ano trabalhando apenas com desktop e tô meio enferrujado...

 

 

Por acaso eu vi alguma coisa na Internet sobre o PostBack da página. Mas falava muito relativamente, não com o meu problema específico. Neste caso, os Internautas diziam que a página deveria ter o AutoPostBack definido como True no evento Load() da página. Seria esse o correto? Ainda não tentei.

 

Em todo o caso, peço perdão pela a ignorância, mas o que é Binding?

 

Obrigado pela resposta.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.