濮阳杆衣贸易有限公司

主頁(yè) > 知識(shí)庫(kù) > Asp.net后臺(tái)把腳本樣式輸出到head標(biāo)簽中節(jié)省代碼冗余

Asp.net后臺(tái)把腳本樣式輸出到head標(biāo)簽中節(jié)省代碼冗余

熱門(mén)標(biāo)簽:蘋(píng)果手機(jī)凱立德地圖標(biāo)注 百度ai地圖標(biāo)注 申請(qǐng)400電話手續(xù) 電話機(jī)器人軟件銷售工作 玉林市機(jī)器人外呼系統(tǒng)哪家好 預(yù)測(cè)式外呼系統(tǒng)使用說(shuō)明 合肥電銷外呼系統(tǒng)哪家公司做的好 南陽(yáng)外呼系統(tǒng)定制化 同安公安400電話怎么申請(qǐng)流程

 最近在學(xué)習(xí)開(kāi)發(fā)服務(wù)器控件,其它就少不了為控件注冊(cè)js和css之類的資源文件,或者直接注冊(cè)純腳本樣式。其中就遇到如下問(wèn)題:

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

     2、 一個(gè)頁(yè)面使用多個(gè)一樣的控件時(shí),會(huì)出現(xiàn)重復(fù)輸入(出現(xiàn)多余代碼)

           第一個(gè)問(wèn)題說(shuō)到底也不是什么問(wèn)題,主要是看個(gè)人喜歡。在瀏覽器里查看頁(yè)面源代碼時(shí),也許就成了問(wèn)題了,源代碼很不整潔,要是內(nèi)容多時(shí)問(wèn)題就更突出。本來(lái)想找腳本,卻在head標(biāo)簽里找不到,只能到其它標(biāo)簽里找了。(不知道有沒(méi)有哪些開(kāi)發(fā)工具在查看源代碼時(shí)可以把它們都區(qū)分開(kāi)來(lái),以方便查找)

    第二個(gè)卻實(shí)是個(gè)問(wèn)題,也不多說(shuō)了。

    有問(wèn)題就應(yīng)該解決,為了方便看效果,把它改成了后臺(tái)直接使用,開(kāi)發(fā)服務(wù)器控件時(shí)也使用,只是不用引用嵌入資源文件。

     代碼如下,兩個(gè)方法:

復(fù)制代碼 代碼如下:

注冊(cè)資源文件

/// summary>
        /// 注冊(cè)資源文件
        /// /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);//注冊(cè)資源key
            }
        }


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

復(fù)制代碼 代碼如下:

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

/// summary>
        /// 注冊(cè)腳本塊(或者樣式塊)
        /// /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);//注冊(cè)資源key
            }
        }


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

  

  如何使用

 此例在Page_Load方法里使用

復(fù)制代碼 代碼如下:

  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
復(fù)制代碼 代碼如下:

body {
}

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


腳本文件:
JScript1.js
復(fù)制代碼 代碼如下:

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

頁(yè)面:
html
復(fù)制代碼 代碼如下:


!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>

您可能感興趣的文章:
  • Visual Studio 2017下ASP.NET CORE的TagHelper智能提示解決辦法
  • NET Core TagHelper實(shí)現(xiàn)分頁(yè)標(biāo)簽
  • 解讀ASP.NET 5 & MVC6系列教程(13):TagHelper
  • asp.net正則表達(dá)式刪除指定的HTML標(biāo)簽的代碼
  • asp.net 過(guò)濾圖片標(biāo)簽的正則
  • asp.net core新特性之TagHelper標(biāo)簽助手

標(biāo)簽:海南 南京 南昌 南京 臺(tái)州 嘉興 淄博 揚(yáng)州

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Asp.net后臺(tái)把腳本樣式輸出到head標(biāo)簽中節(jié)省代碼冗余》,本文關(guān)鍵詞  Asp.net,后臺(tái),把,腳本,樣式,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Asp.net后臺(tái)把腳本樣式輸出到head標(biāo)簽中節(jié)省代碼冗余》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Asp.net后臺(tái)把腳本樣式輸出到head標(biāo)簽中節(jié)省代碼冗余的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    寻乌县| 哈密市| 昌黎县| 江津市| 中阳县| 九寨沟县| 新平| 崇州市| 黎平县| 望江县| 河北区| 深圳市| 泰安市| 山东省| 和田市| 布尔津县| 四会市| 漾濞| 荥经县| 山东| 伊宁市| 旌德县| 达孜县| 鸡泽县| 牟定县| 连江县| 海门市| 望江县| 万山特区| 桐柏县| 吉首市| 荣成市| 三亚市| 英超| 荔波县| 武宣县| 苏尼特右旗| 江都市| 桃园市| 西贡区| 宜良县|