Aplicável a:
| • | Web Development |
| • | Microsoft ASP.NET 2.0 |
Resumo:Este artigo aborda as Master Pages do ASP.NET 2.0 e como manipulá-las no código.
| Introdução | |
| Trabalhando com os “Membros” da Master Page. | |
| Trabalhando com Valores dos componentes de uma Master Page. | |
| Herdando uma Master Page Dinamicamente | |
| Conclusão |
A maioria das pessoas já ouviu falar de ASP.NET MasterPages. Sem dúvida um grande recurso que foi incluído no ASP.NET 2.0 e que veio para facilitar a vida do desenvolvedor Web.
Hoje mostraremos que o recurso de Master Pages, pode ser bem dinâmico, no qual podemos via código trabalhar com propriedades, funções e atributos da Master Page.
Você já deve ter programado uma Master Page e dentro dela você com certeza já quis fazer uma codificação mais completa, aonde você poderia definir, por exemplo, uma série de propriedades para serem manipuladas. Mas a pergunta é como fazer para acessar algum membro público da minha Master Page, através de uma página ASPX? Vamos ver como isso funcionaria.
Crie um projeto ASP.NET Web site (File>>New Web Site).

Com seu projeto criado adicione um novo item do tipo Master Page.

Adicione também um novo Web Form, lembrando que ele deve herdar as propriedades da Master Page criada anteriormente.


Ao concluirmos o processo acima, vamos até a área de codificação da nossa Master Page (MasterPage.master.cs), onde criaremos uma propriedade como exemplo.
private string Titulo;
public string TituloPage
{
get { return Titulo; }
set { Titulo = value; }
}
Agora ao acesse o código HTML de sua página ASPX(Default2.aspx) a qual herdou as características de sua Master Page. Insira a seguinte diretiva:
<%@ MasterType VirtualPath="~/MasterPage.master" %>
Ocorrendo o que chamamos de referência “forçada”. Ao colocarmos a diretiva, o ASP.NET durante o processo de criação da propriedade Master que será usada em nossa ASPX, automaticamente acessa e disponibiliza todos os membros públicos declarados na MasterPage principal. Sendo assim, conseguimos acessar todos os membros disponiveis em nossa MasterPage através da propriedade Master, criada em nossa página ASPX.
Master.TituloPage = "MSDN Brasil";
Como todos sabem, dentro de uma Master Page eu posso colocar diversos componentes, os quais ficarão “Bloqueados” para edição nas páginas ASPX. Então como eu faço para acessar ou atribuir algum valor a um componente colocado em nossa Master Page?
Para isso vamos alterar o layout da nossa Master Page, no qual incluiremos um TextBox denominado txtBusca.

Agora em nossa página ASPX, vamos inserir um botão e um textbox para trabalharmos com os valores do txtBusca incluído em nossa Master Page.

No código do Button, iremos criar um objeto do mesmo tipo que queremos buscar em nossa Master Page, neste caso um Textbox, fazendo assim com que ele “assuma” as características do objeto encontrado na busca feita dentro da página Master. Detalhe na busca deve ser passado o Name do objeto a ser encontrado.
protected void Button1_Click(object sender, EventArgs e)
{
TextBox Obj = (TextBox)Master.FindControl("txtBusca");
Obj.Text = txtValor.Text;
}
Com isso podemos buscar qualquer objeto incluído dentro de nossa Master Page e trabalhar com suas propriedades.
Imaginem comigo que em seu projeto você possua diferentes Master Pages, e que de acordo com as características de seu cliente você deve usar uma ou outra Master Page. O que fazer nesses casos?
Para isso, conseguimos definir em tempo de execução qual a Master Page que será usada pela página ASPX. Vamos criar em nosso projeto uma nova Master Page (MasterPage2.master) com um layout simples para demonstração.

Agora com as duas Master Pages criadas vamos a nossa página ASPX(Default2.aspx), e no evento de inicialização da página(Page_PreInit), colocaremos a codificação para atribuir em tempo de execução a MasterPage que será usada pelo ASPX.
protected void Page_PreInit(Object sender, EventArgs e)
{
this.MasterPageFile = "~/MasterPage2.master";
}
Com isso você poderá usuar a propriedade MasterPageFile para atribuir qualquer Master Page a seu projeto em tempo de execução.
Clique aqui para baixar o código do Projeto.
Master Pages sem dúvida é um excelente recurso do ASP.NET 2.0, pois com ela conseguimos vários beneficios como, padronização de páginas, facilidade na manutenção e no desenvolvimento de seu projeto, ainda mais quando conseguimos usa-la de uma maneira mais maleável e dinâmica.
Para obter mais detalhes : Master Pages no ASP.NET 2.0 (Renato Haddad)
Bons estudos, e até a próxima.
Adriano Bertucci(adriano@builddevelopers.net).
Trabalha com desenvolvimento de softwares a oito anos, sendo que .NET desde 2001. Líder do grupo de usuários Build Developer´s .NET (www.builddevelopers.net). Atualmente trabalha com desenvolvimento de softwares em diversas áreas usando tecnologia Microsoft, é representante do comitê de newsletter da INETA Brasil, e vem trabalhando a três anos na disseminação da plataforma .NET, através de treinamentos, palestras e reuniões. Já palestrou em diversas localidades do Brasil atingindo um público de cerca de 5000 pessoas em suas apresentações. Atualmente pertence ao grupo de Speaker Bureau do Culminis(http://brasil.culminis.com/). Visite o blog: http://www.adrianobertucci.com/