设置Title :
- this.Header.Title="这是个Title测试";
如果用了MasterPage可以这样用:
- this.Page.Title = SiteMap.CurrentNode.Title;
动态设置Style:
- Style style = new Style();
- style.ForeColor = System.Drawing.Color.Navy;
- style.BackColor = System.Drawing.Color.LightGray;
- this.Header.StyleSheet.CreateStyleRule(style, null, "body");
动态加样式表:
- HtmlLink link = new HtmlLink();
- link.Attributes.Add("type", "text/css");
- link.Attributes.Add("rel", "stylesheet");
- link.Attributes.Add("href", "~/newstyle.css");
- this.Header.Controls.Add(link);
动态加meta tags :
- HtmlMeta meta = new HtmlMeta();
- meta.Name = "keywords";
- meta.Content = "Some words listed here";
- this.Header.Controls.Add(meta);
- meta = new HtmlMeta();
- meta.Name = "robots";
- meta.Content = "noindex";
- this.Header.Controls.Add(meta);
- meta = new HtmlMeta();
- meta.Name = "date";
- meta.Content = DateTime.Now.ToString("yyyy-MM-dd");
- meta.Scheme = "YYYY-MM-DD";
- this.Header.Controls.Add(meta);
---------------------------------------------------------------------------------------------
ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description
2008年03月24日 星期一 10:59
-
- public void setMeta(string key,string des)
- {
- HtmlMeta
- keywords = new HtmlMeta(),
- description = new HtmlMeta();
- keywords.Name = "keywords";
- keywords.Content = key;
- description.Name = "description";
- description.Content = des;
- Page.Header.Controls.Add(keywords);
- Page.Header.Controls.Add(description);
- }
在ASP.NET编程中,由于经常采用一个页面通过不同的参数来显示不同的内容,因此常常需要实现动态输出不同的html header, 比如title, keywords, descrtptions等。
推荐的简单做法如下:
- protected void Page_Load(object sender, EventArgs e)
- {
-
- Page.Title = "This is a title and meta test page.";
-
- HtmlMeta encode = new HtmlMeta();
- encode.HttpEquiv = "Content-Type";
- encode.Content = "text/html; charset=utf-8";
- Page.Header.Controls.Add(encode);
-
- HtmlMeta lang = new HtmlMeta();
- lang.HttpEquiv = "Content-Language";
- lang.Content = "zh-cn";
- Page.Header.Controls.Add(lang);
-
- HtmlMeta desc = new HtmlMeta();
- desc.Name = "Description";
- desc.Content = "Test the meta controls";
- Page.Header.Controls.Add(desc);
-
- HtmlMeta keywords = new HtmlMeta();
- keywords.Name = "keywords";
- keywords.Content = "title,meta,test,page";
- Page.Header.Controls.Add(keywords);
-
- HtmlLink cssLink = new HtmlLink();
- cssLink.Href = "MasterPage.css";
- cssLink.Attributes.Add("rel", "stylesheet");
- cssLink.Attributes.Add("type", "text/css");
- Page.Header.Controls.Add(cssLink);
- }
浏览时输出的页面源码便会达到如下效果:
- <head><title>
- This is a title and meta test page.
- </title><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><meta http-equiv="Content-Language" content="zh-cn" /><meta name="Description" content="Test the meta controls" /><<meta name="keywords" content="title,meta,test,page" /><link href="MasterPage.css" rel="stylesheet" type="text/css" /></head>
由于需要动态修改Header的Controls集合,因此如果放在用户自定义控件的Page_Onload事件中因为已经太迟而到处出现异常。对于希望用通用的控件实现这一功能的场合,建议包装一个普通的类,然后在MasterPager或者Page的Page_OnLoad中调用一下即可。
- #region PAGE HEAD
-
- public void BackHeadContent(HtmlControl htmlCtrl)
- {
- Content(htmlCtrl, "网站后台管理系统", "~/CssStyle/SiteStyles.css");
- }
- public void HeadContent(HtmlControl htmlCtrl, string strPageTitle)
- {
- Content(htmlCtrl, strPageTitle, "~/CssStyle/Styles.css");
- }
-
- private void Content(HtmlControl htmlCtrl, string strTitle,string cssFile)
- {
-
- HtmlTitle title = new HtmlTitle();
- title.Text = strTitle;
- htmlCtrl.Controls.Add(title);
-
- HtmlLink cssLink = new HtmlLink();
- cssLink.Href = cssFile;
- cssLink.Attributes.Add("rel", "stylesheet");
- cssLink.Attributes.Add("type", "text/css");
- htmlCtrl.Controls.Add(cssLink);
- HtmlMeta
- author = new HtmlMeta(),
- copyright = new HtmlMeta(),
- date = new HtmlMeta(),
- keywords = new HtmlMeta(),
- description = new HtmlMeta(),
- robots = new HtmlMeta();
- author.Name = "Author";
- author.Content = "Insus.NET";
- copyright.Name = "Copyright";
- copyright.Content = "Copyright 2008 Insus.NET";
- date.Name = "date";
- date.Content = DateTime.Now.ToShortDateString() + " " + DateTime.Now.ToShortTimeString();
- keywords.Name = "keywords";
- keywords.Content = "Insus ";
- description.Name = "description";
- robots.Name = "robots";
- robots.Content = "all";
- string[] InsusWords = "VISUAL STUDIO 2003,VISUAL STUDIO 2005,Microsoft SQL Server 2005,ASP.NET,ASP.NET 2.0,VB.NET,C#,AJAX,LINQ"
- .Replace("//r", string.Empty)
- .Replace("//n", string.Empty)
- .Replace(">br />", string.Empty)
- .Replace(",", string.Empty)
- .Replace("//'", string.Empty)
- .Split(' ');
- foreach (string word in InsusWords)
- keywords.Content += word + ",";
- if (keywords.Content.ToString().Length > 1024)
- {
- keywords.Content = keywords.Content.Substring(0, keywords.Content.IndexOf(" ", 1024));
- }
- description.Content = "This web site use asp.net2.0 and C# and Ajax technology";
- if (description.Content.ToString().Length > 1024)
- {
- description.Content = description.Content.Substring(0, description.Content.IndexOf(" ", 1024));
- }
- htmlCtrl.Controls.Add(author);
- htmlCtrl.Controls.Add(copyright);
- htmlCtrl.Controls.Add(date);
- htmlCtrl.Controls.Add(keywords);
- htmlCtrl.Controls.Add(description);
- htmlCtrl.Controls.Add(robots);
- }
- #endregion PAGE HEAD
|