激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - Asp.net后臺把腳本樣式輸出到head標簽中節省代碼冗余

Asp.net后臺把腳本樣式輸出到head標簽中節省代碼冗余

2019-10-24 15:56asp.net教程網 ASP.NET教程

最近在學習開發服務器控件,其它就少不了為控件注冊js和css之類的資源文件,或者直接注冊純腳本樣式。其中就遇到如下問題     1、 注冊的資源文件或純腳本樣式在生成的頁面中都不在head標簽中(當然這個不影響頁面功能

最近在學習開發服務器控件,其它就少不了為控件注冊js和css之類的資源文件,或者直接注冊純腳本樣式。其中就遇到如下問題:

    1、  注冊的資源文件或純腳本樣式在生成的頁面中都不在head標簽中(當然這個不影響頁面功能)

     2、 一個頁面使用多個一樣的控件時,會出現重復輸入(出現多余代碼)

           第一個問題說到底也不是什么問題,主要是看個人喜歡。在瀏覽器里查看頁面源代碼時,也許就成了問題了,源代碼很不整潔,要是內容多時問題就更突出。本來想找腳本,卻在head標簽里找不到,只能到其它標簽里找了。(不知道有沒有哪些開發工具在查看源代碼時可以把它們都區分開來,以方便查找)

    第二個卻實是個問題,也不多說了。

    有問題就應該解決,為了方便看效果,把它改成了后臺直接使用,開發服務器控件時也使用,只是不用引用嵌入資源文件。

     代碼如下,兩個方法:

 

復制代碼代碼如下:


注冊資源文件

 

/// <summary>
        /// 注冊資源文件
        /// </summary>
        /// <param name="path">路徑</param>
        /// <param name="key">要搜索的客戶端資源的鍵,防止</param>
        /// <param name="type">資源文件類型</param>
        public void RegisterResource(string path, string key, ResType type)
        {
            string resStr = string.Empty;
            switch (type)
            {
                case ResType.Js:
                    resStr = string.Format("<script type=\"text/javascript\" language=\"javascript\" src=\"{0}\"></script>", path);
                    break;
                case ResType.Css:
                    resStr = string.Format("<link href=\"{0}\" rel=\"stylesheet\" type=\"text/css\" />", path);
                    break;
            }
            //是否已輸出
            if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), key))
            {
                if (Page.Header != null)
                {
                    LiteralControl link = new LiteralControl();
                    link.Text = "\r\n" + resStr;
                    Page.Header.Controls.Add(link);
                }
                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), key, "", false);//注冊資源key
            }
        }


此方法有三個參數,第一個path是資源文件路徑;第二個key是資源文件標識,用來防止重復注冊;第三個type,枚舉類型,樣式和腳本兩類。方法也很簡單,通過為頁面Header控件增加自己定義控件以達到想要的效果。Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), key)用來檢測當前頁面實例中此資源文件標識是否已經注冊過,Page.ClientScript.RegisterClientScriptBlock(this.GetType(), key, "", false)這個不可少,此作用就是在當前頁面實例中注冊該資源,其本來之意是注冊一個腳本,但此處的腳本為空。

 

 

復制代碼代碼如下:


注冊腳本塊(或者樣式塊)

 

/// <summary>
        /// 注冊腳本塊(或者樣式塊)
        /// </summary>
        /// <param name="script"></param>
        /// <param name="key"></param>
        /// <param name="type"></param>
        public void RegisterScript(string script, string key)
        {
            //是否已輸出
            if (!Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), key))
            {
                if (Page.Header != null)
                {
                    LiteralControl link = new LiteralControl();
                    link.Text = "\r\n" + script;
                    Page.Header.Controls.Add(link);
                }
                Page.ClientScript.RegisterClientScriptBlock(this.GetType(), key, "", false);//注冊資源key
            }
        }


 此方法有二個參數,第一個script 是腳本塊(或者樣式塊),如<script>******</script>或都<style></style>之類。方法體和上面的差不多,在此就不講了。

 

  

  如何使用

 此例在Page_Load方法里使用

 

復制代碼代碼如下:

  protected void Page_Load(object sender, EventArgs e)
        {
this.RegisterResource("css/StyleSheet1.css", "dfed", ResType.Css);
                this.RegisterResource("Scripts/JScript1.js", "dfed4", ResType.Js);
                this.RegisterScript("<script>alert('直接用script腳本輸入')</script>", "dfed6");
        }


樣式文件:
StyleSheet1.css 

復制代碼代碼如下:

 

body {
}

div { height:200px; background-color:Blue}


腳本文件:
JScript1.js

復制代碼代碼如下:

alert('這是js文件里的腳本');


頁面:
html 

復制代碼代碼如下:

 


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

 

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久成人午夜 | 色中色在线视频 | 日韩视频在线观看免费视频 | 中文国产在线视频 | 在线观看一区二区三区四区 | 亚洲电影免费观看国语版 | 午夜亚洲视频 | 国产亚洲精品久久久久婷婷瑜伽 | 污版视频在线观看 | 欧美在线 | 亚洲 | 国产一区二区三区四区五区在线 | www69xxx | 国产精品免费一区二区 | 色中色综合网 | 99精品视频在线导航 | 三级国产三级在线 | 久久精品亚洲精品国产欧美kt∨ | 日本一级黄色大片 | 亚洲视频综合网 | 黄色网址电影 | 日韩每日更新 | 91精品国产一区二区三区动漫 | 精品一区二区在线观看视频 | 中文字幕在线播放第一页 | 玩偶姐姐 在线观看 | 亚洲天堂岛国片 | 免费国产自久久久久三四区久久 | 大学生一级毛片在线视频 | 欧美性生交大片 | 国产91精品久久久久久 | 国产一区二区三区在线观看视频 | 久久国产成人精品国产成人亚洲 | 国产精品一区二区三区在线播放 | 日本黄色一级视频 | 午夜视频在线 | 偿还电影免费看 | 国产亚洲综合精品 | 日本一区二区不卡高清 | 久久无 | 精品国产一区二区三区四区在线 | 国产成人强伦免费视频网站 |