最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2013年02月19日 14:49:34   作者:  
最近在學(xué)習(xí)開發(fā)服務(wù)器控件,其它就少不了為控件注冊(cè)js和css之類的資源文件,或者直接注冊(cè)純腳本樣式。其中就遇到如下問題     1、 注冊(cè)的資源文件或純腳本樣式在生成的頁(yè)面中都不在head標(biāo)簽中(當(dāng)然這個(gè)不影響頁(yè)面功能)     2、 一個(gè)頁(yè)面使用多個(gè)一樣的控件時(shí),會(huì)出現(xiàn)重復(fù)輸入(出現(xiàn)多余代碼)

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

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

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

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

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

    有問題就應(yīng)該解決,為了方便看效果,把它改成了后臺(tá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)單,通過為頁(yè)面Header控件增加自己定義控件以達(dá)到想要的效果。Page.ClientScript.IsClientScriptBlockRegistered(this.GetType(), key)用來(lái)檢測(cè)當(dāng)前頁(yè)面實(shí)例中此資源文件標(biāo)識(shí)是否已經(jīng)注冊(cè)過,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>

相關(guān)文章

  • ASP.NET MVC4 利用uploadify.js多文件上傳

    ASP.NET MVC4 利用uploadify.js多文件上傳

    本文主要介紹了ASP.NET MVC4利用uploadify.js實(shí)現(xiàn)多文件上傳的方法代碼。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧
    2017-03-03
  • ASP.NET MVC從視圖傳參到控制器的幾種形式

    ASP.NET MVC從視圖傳參到控制器的幾種形式

    這篇文章主要介紹了ASP.NET MVC從視圖傳參到控制器的幾種形式,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-04-04
  • asp.net 讀取并顯示excel數(shù)據(jù)的實(shí)現(xiàn)代碼

    asp.net 讀取并顯示excel數(shù)據(jù)的實(shí)現(xiàn)代碼

    Microsoft Office Excel是一個(gè)很好的電子表格應(yīng)用程序,在本文中,it同學(xué)會(huì)將教給你看到如何使用ASP.NET從Excel電子表格讀取并顯示顯示數(shù)據(jù)。
    2010-02-02
  • Visual?Studio?2022智能輔助編碼介紹

    Visual?Studio?2022智能輔助編碼介紹

    這篇文章介紹了Visual?Studio?2022智能輔助編碼,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12
  • ASP.NET MVC 項(xiàng)目直接預(yù)覽PDF文件

    ASP.NET MVC 項(xiàng)目直接預(yù)覽PDF文件

    本文主要介紹了ASP.NET MVC項(xiàng)目實(shí)現(xiàn)直接預(yù)覽PDF文件的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • asp.net core為IHttpClientFactory添加動(dòng)態(tài)命名配置

    asp.net core為IHttpClientFactory添加動(dòng)態(tài)命名配置

    某些時(shí)候我們需要為HttpClient動(dòng)態(tài)配置一些東西, 例如證書等, 例如服務(wù)是一個(gè)回調(diào)服務(wù), 而被回調(diào)方采用了自定義的https(即自定義證書),本文就將講述如何實(shí)現(xiàn)這種需求
    2021-06-06
  • 詳解ASP.NET Core Token認(rèn)證

    詳解ASP.NET Core Token認(rèn)證

    這篇文章主要介紹了詳解ASP.NET Core Token認(rèn)證,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。
    2016-12-12
  • 如何在.Net?7中將Query綁定到數(shù)組詳解

    如何在.Net?7中將Query綁定到數(shù)組詳解

    這篇文章主要給大家介紹了關(guān)于如何在.Net?7中將Query綁定到數(shù)組的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2022-12-12
  • ASP.NET Core中實(shí)現(xiàn)用戶登錄驗(yàn)證的最低配置示例代碼

    ASP.NET Core中實(shí)現(xiàn)用戶登錄驗(yàn)證的最低配置示例代碼

    最近工作中遇到一個(gè)需求,需要在ASP.NET Core中來(lái)實(shí)現(xiàn)一個(gè)基礎(chǔ)的身份認(rèn)證,下面這篇文章主要給大家介紹了關(guān)于ASP.NET Core中實(shí)現(xiàn)用戶登錄驗(yàn)證的最低配置的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-10-10
  • .net連接oracle的3種實(shí)現(xiàn)方法

    .net連接oracle的3種實(shí)現(xiàn)方法

    這篇文章介紹了.net連接oracle的3種實(shí)現(xiàn)方法,有需要的朋友可以才可以一下
    2013-07-07

最新評(píng)論

嵩明县| 海南省| 安丘市| 咸宁市| 盱眙县| 井陉县| 德庆县| 汝南县| 台南市| 廊坊市| 图木舒克市| 安图县| 昌黎县| 德阳市| 兰西县| 馆陶县| 怀仁县| 台江县| 大田县| 黄骅市| 堆龙德庆县| 湖北省| 布尔津县| 陇川县| 万全县| 当涂县| 乌什县| 塔城市| 泾川县| 泊头市| 察哈| 文安县| 宜兰市| 惠州市| 烟台市| 望城县| 烟台市| 历史| 冀州市| 鄂托克前旗| 舞钢市|