推荐的简单做法如下:protected void Page_Load(object sender, EventArgs e){ //Page title Page.Title = "This is a title and meta test page."//Encode/Content type HtmlMeta encode = new HtmlMeta()encode.HttpEquiv = "Content-Type"encode.Content = "text/htmlcharset=utf-8"Page.Header.Controls.Add(encode)//Language HtmlMeta lang = new HtmlMeta()lang.HttpEquiv = "Content-Language"lang.Content = "zh-cn"Page.Header.Controls.Add(lang)//Description HtmlMeta desc = new HtmlMeta()desc.Name = "Description"desc.Content = "Test the meta controls"Page.Header.Controls.Add(desc)//Keyword HtmlMeta keywords = new HtmlMeta()keywords.Name = "keywords"keywords.Content = "title,meta,test,page"Page.Header.Controls.Add(keywords)//Link/CSS HtmlLink cssLink = new HtmlLink()cssLink.Href = "MasterPage.css"cssLink.Attributes.Add("rel", "stylesheet")cssLink.Attributes.Add("type", "text/css")Page.Header.Controls.Add(cssLink)}浏览时输出的页面源码便会达到如下效果:This is a title and meta test page. 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
这几乎是不可能的。
为什么?
每个页面都有生命周期,每个生命周期,都会做一些事情。InitComplete(初始化页面)事件,这是事件就是用来为runat=“server”的控件保存入控件树,并且加载视图状态。也正因为有这个事件,将runat=“server”的控件保存入控件树,我们才能在后台中通过id访问到服务器空间。
从1可以看出,如果你想为任何一个控件添加runat=“server”,一定要在InitComplete()这个事件之前,添加这个属性。那么只有在Init()这个时间中,找到你想 *** 作的控件,然后添加runat属性,但是这个时候,你根本找不到你想 *** 作的控件,因为控件还没添加入控件树。
评论列表(0条)