有时候,希望在代码中朝ASP.NET页面的Head部分写入内容或者进行修改.但是,PAGE对象管辖的范围只能到FORM标记内,根本无法访问页面的HEAD部分。在GOOGLE上搜了一圈,也没找到答案.
昨晚突然想起在哪本书上看过说所有HTML标记皆可变为HTML控件,于是试着给Head加入了ID属性和RUNAT="SERVER",如下:
<Head Id="PageHeader" Runat="Server">
<Meta Name="keyword" content="business,company">
</head>
添加完毕后,发现在代码视图中并没有名为Pageheader的控件.尝试用Page.FindControl("PageHeader")查找该控件,发现查找成功,于是,使用下面的代码就可以添加Head标记中的内容了
private void InitScript()
{
Control C=this.FindControl("PageHeader");
if (c!=null)
{
Literal l=new Literal();
l.Text=BuilderJs();//BuilderJs返回一段JS代码
c.Controls.Add(l);
}
}
问题得到完美解决.当然,你也可以给BODY加入ID和RUNAT=SERVER,也可以给TITLE标记加入ID和RUNAT=SERVER这样,你就可以操纵这些标记了 。