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中可能會出現驗證性的錯誤,但是不影響效果和功能!
 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章