;

terça-feira, 14 de dezembro de 2010

Master Pages - ASP.NET

O conceito de master page está disponível no .NET framework a partir da versão 2.0. Este recurso se aplica a projetos web e web sites, possibilitando a criação de páginas padronizadas, utilizando-se de herança visual, de uma maneira simples e eficiente. Na master page são definidos todos os recurso visuais comuns das páginas para que, desta forma, estes controles sejam manipulados em apenas uma vez (cabeçalho, rodapé, menus...). As páginas filhas herdarão estes controles, além de estilos e scripts definidos em sua página mestra. O conceito é semelhante ao da herança que temos na programação orientada a objetos.

Para criar uma master page, no Visual Studio, você deve incluir um novo item no projeto (Add New Item) e escolher a opção Master Page. Escolha um nome e confirme. Repare que no inicio da página criada (NomeDaPagina.master) há uma linha parecida com esta:

   
   
   
   
   
   
   
   
  
<%@ Master Language="C#" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>
 
É esta linha que define que esta página é uma master page. Repare também que o Visual Studio já inseriu um ou dois campos chamados ContentPlaceHolder. Os ContentPlaceHolders são os campos que receberão o conteúdo das páginas filhas desta. Portanto, não coloque nada dentro destes componentes, pois será sobrescrito na hora de renderizar a página filha.

Entretanto, tudo que for adicionado a master page, e estiver fora dos ContentsPlaceHolders, será exibido nas páginas que herdarão desta. Desta forma, adicione a sua master page todos os elementos que deverão aparecer em todas as páginas. E você poderá incluir quantos ContentsPlaceHolders achar necessário.

Criada a master page, basta criar uma página que fará uso desta. Volte á solution explorer e adicione um novo item. Se estiver criando um site, selecione a opção Web Form, e marque a checkbox Select Master Page. Se estiver criando um projeto web, selecione a opção Web Content Form e clique em Add. Na janela seguinte selecione a master page recém criada e confirme.

Nesta nova página (.aspx) aparecerá a seguinte linha:


<%@ Page MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default1.aspx.cs" Inherits="Default1" Title="Untitled Page" %>

O atributo MasterPageFile especifica de qual master pager a página herda. Além desta linha o arquivo possuirá tags do tipo <asp: Content>, uma para cada ContentPlaceHolder incluído na master page. Agora sim, todo o conteúdo deve estar dentro das tags de início e fim dos Contents. Todo o conteúdo fora destes controles será ignorado. Veja que esta página não possui as tradicionais tags HTML, Header, Body e Form. Isto acontece porque estas tags já estão na master page, e  no momento de renderizá-la, ela herdará da página mestra. 

Agora rode o projeto. Você verá que todos os elementos incluídos na página mestra estão presentes em sua página, assim como os componentes incluídos na página filha.

Isto é apenas o básico. Se quiser saber mais, acesse http://msdn.microsoft.com/en-us/library/wtxbf3hh.aspx.

0 comentários:

Postar um comentário