asp.net2.0中通过CS代码来动态的指定aspx页面中head中的信息

在使用asp.net进行web开发的时候页面中的<head></head>中的信息可以通过,asp.netcs文件动态指定,但是如果很多页面都这样处理的话,就和在aspx代码页面中添加没有什么区别了,这个时候我们我们创建一个基类BasePage(继承自Page类),让需要添加<head>中信息的页面继承自基类即可。   
protected override void OnLoad(EventArgs e)
    {
        /*此处加入下面的动态增加的代码*/
        base.OnLoad(e);
    }
下面就是动态增加的代码
/*动态增加样式表*/
        HtmlLink link = newHtmlLink();
        link.Attributes.Add("type", "text/css");
        link.Attributes.Add("rel", "stylesheet");
        link.Attributes.Add("href", "~/main.css");
        this.Header.Controls.Add(link);
 
        /*动态增加样式*/
        Style style = newStyle();
        style.ForeColor = System.Drawing.Color.Navy;
        style.BackColor = System.Drawing.Color.LightGray;
        this.Header.StyleSheet.CreateStyleRule(style, null, "body");
 
        /*动态增加Meta*/
        HtmlMeta meta = newHtmlMeta();
        meta.Name = "keywords";
        meta.Content = "Your keywords here";
        this.Header.Controls.Add(meta);
 
        meta = newHtmlMeta();
        meta.Name = "company";
        meta.Content = "microsoft";
        this.Header.Controls.Add(meta);
 
        meta = newHtmlMeta();
        meta.Name = "date";
        meta.Content = DateTime.Now.ToString("yyyy-MM-dd");
        meta.Scheme = "YYYY-MM-DD";
        this.Header.Controls.Add(meta);
 
 
        /*动态增加js文件*/
        HtmlGenericControl si = newHtmlGenericControl();
        si.TagName = "script";
        si.Attributes.Add("language", "javascript");
        si.Attributes.Add("type", "text/javascript");
        si.Attributes.Add("src", "status.js");//注意路径的写法
        this.Page.Header.Controls.Add(si);
 
这样你如果在某一个继承自基类BasePage的页面查看源代码,可以发现和在每个页面的head中增加的信息一样!哈哈,这不是废话吗,不一样还搞它有个毛用啊!
调用js代码我调试了N长时间才弄出来,全部调试成功了,爽啊!本来周六上班就火,结果搞定一个问题,呵呵心情好多了啊!
 
测试环境:vs2005
自我感觉与测试环境没有什么关系的,估计只有js文件调用可能有点影响吧,因为原来写的时候<script>中很少写type属性,如果去掉type属性在vs2005中可能会出现验证性的错误,但是不影响效果和功能!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章