ASP.NET – Page.Header
Neste artigo vamos conhecer as classes HtmlMeta onde podemos mudar dinamicamente tags metadata, title e StyleSheet.
ASP.NET – Page. Header
Podemos transformar qualquer elemento HTML em um Server control utilizando o atributo runat=”server” , uma página pode conter ilimitados controles, porém ela só pode ter um HtmlHead, onde temos acesso Server-side.
<head runat="server">
<title>Untitled Page</title>
</head>
Como nos Server controls, você pode programaticamente alterar o conteúdo que é renderizado na tag <head>, útil porque podemos mudar alguns detalhes via código quando precisarmos, como o title, metadata tags (útil para fornecer palavras chaves) e referencias a stylesheet. Para fazer estas modificações utilizamos os membros da classe HtmlHead, que são os seguintes.
Title: É o título de uma Page HTML que será exibido no barra de títulos do browser. Você pode mudar em tempo de execução.
StyleSheet: Provê um IStyleSheet objeto, que representa um estilo inline no cabeçalho. Você pode utilizar o objeto IStyleSheet para criar um novo estilo dinamicamente, utilizando os métodos CreateStyleRule() e RegisterStyle().
Exemplo:
protected void Page_Load(object sender, EventArgs e)
{
// Cria uma Style object
Style bodyStyle = new Style();
bodyStyle.ForeColor = System.Drawing.Color.Blue;
bodyStyle.BackColor = System.Drawing.Color.LightGray;
// Adiciona o style no header
Page.Header.StyleSheet.CreateStyleRule(bodyStyle, null, "body");
}
<title>Untitled Page</title>
<style type="text/css">
body { color:Blue;background-color:LightGrey; }
</style>
</head>
Controls: Você pode adicionar ou remover tags metadata via código utilizando as classes HtmlMeta. Abaixo um exemplo de como alterar o título e as tags metadata dinamicamente.
protected void Page_Load(object sender, EventArgs e)
{
Page.Header.Title = "Título dinâmico";
//Define uma tag metadata
HtmlMeta metaDescription = new HtmlMeta();
metaDescription.Name = "description";
metaDescription.Content = "ASPNETi, tudo sobre .NET";
//Adicionando
Page.Header.Controls.Add(metaDescription);
//Segundo tag metadata
HtmlMeta metaKeywords = new HtmlMeta();
metaKeywords.Name = "keywordS";
metaKeywords.Content = ".NET, C#, ASP.NET";
Page.Header.Controls.Add(metaKeywords);
}
RENDERIZADO
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Título dinâmico
</title>
<meta name="description" content="ASPNETi, tudo sobre .NET" />
<meta name="keywordS" content=".NET, C#, ASP.NET" /></head>
<body>
<form name="form1" method="post" action="Default.aspx" id="form1">
<div>
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="/wEPDwUJNzgzNDMwNTMzZGQQe26Fc2jEoK6Akrn/SO4FZNd7jg==" />
</div> <div>
</div>
</form>
</body>
</html>
Um item interessante que vejo em alguns sites é mudar o Title com dados que vem do banco, ou seja com os exemplos acima, o título das suas páginas podem ficar de forma dinâmica dependendo da sua necessidade.
Fabio Galante Mans
fabio.galante@mans.com.br
www.aspneti.com
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo