Inquiridor
Pegar controle de webform pela master page

Pergunta
-
Pessoal, precisava pegar controles de um webform, mas atraves do page load da master page. Ja tentei Page.FindControl(idControle) ou
Page.Controls.OfType<TextBox>() mas sem sucesso. Pelo Page.TemplateControl tambem nao deu..
Alguem tem alguma dica??
Obrigado..
Todas as Respostas
-
Por que você não faz o contrário? Pelo o que eu entendi você quer editar um control da masterpage de acordo com um control da content page (pela master page). E se você mudar o control da masterpage de acordo com o control da content page (pela content page), por exemplo:
No ContentPage PageLoad método
TextBox masterTxt = (TextBox)Master.FindControl("txt1"); masterTxt.Text = contentTxt.Text;
Ao infinito e além!
- Editado Fabio R. Luz quinta-feira, 1 de agosto de 2013 16:01 reasons
-
-
Olá,
Você não conseguirá pegar os controles da página que usa a MasterPage de dentro da MasterPage, porque a execução da MasterPage é anterior a execução da página que utiliza a MasterPage.
Na página que utiliza a MasterPage você consegue pegar controles que estão na MasterPage seguindo estes exemplos: http://msdn.microsoft.com/pt-br/library/xxwa0ff0(v=vs.100).aspx.
Att
___
Luciano Rieth
- Sugerido como Resposta Luciano - Rieth quinta-feira, 1 de agosto de 2013 17:27
-
Mas utilizando o findcontrol na mesma pagina que esta o controle, pq eu nao consigo pega-lo?
Estou dizendo isso pq consegui pegar a pagina (atraves da master page) que ele esta, inclusive consegui visualizar o controle debugando a aplicacao...Nem mesmo utilizando o find control dentro do page load da pagina que esta o controle eu consigo pega-lo. Queria saber o pq deste comportamento..
-
Entao, o problema é que utilizando o findcontrol ate mesmo no content page, este retorna null..
Mas utilizando o findcontrol na mesma pagina que esta o controle, pq eu nao consigo pega-lo?
Estou dizendo isso pq consegui pegar a pagina (atraves da master page) que ele esta, inclusive consegui visualizar o controle debugando a aplicacao...Nem mesmo utilizando o find control dentro do page load da pagina que esta o controle eu consigo pega-lo. Queria saber o pq deste comportamento..
Ao infinito e além!
-
Para voce alterar controles da MasterPage, inclua a diretiva da master em seu webform.
Supondo que sua MasterPage se chame Default.Master e seu WebForm se chame Lista.aspx, basta no HTML da pagina Lista.aspx incluir a diretiva:
<%@ MasterType VirtualPath="~/Default.master" %>
Agora no code behind da pagina Lista.aspx, recupere o controle da master:
TextBox tb = (TextBox)this.Master.FindControl("ID_DO_TEXTBOX");
Abaixo alguns links para voce dar uma olhada:
- http://msdn.microsoft.com/en-us/library/xxwa0ff0(v=vs.100).aspx
- http://www.codeproject.com/Articles/36107/Master-Page-and-Content-Page-Interaction
Abraços
Washington Luíz | MCP, MCTS
O Senhor é minha força e somente Nele confio.