国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

動(dòng)態(tài)控制Page頁的Head信息

2024-07-21 02:29:54
字體:
供稿:網(wǎng)友

在以前的asp程序里我們經(jīng)常用使用response.write動(dòng)態(tài)輸出網(wǎng)頁header信息,但在asp.net里這個(gè)所謂代碼與ui分離的指導(dǎo)思想不再希望我們這樣做了(當(dāng)然如果您愿意還可以,這畢竟只是建議而已),以前見過別人用<title ranut="server" id="titlecontrol">default title</title>設(shè)置標(biāo)題的,但本人認(rèn)為不是很好,因?yàn)檫@會(huì)產(chǎn)生多余的id="titlecontrol" 個(gè)人感覺使用literal控件控制比較好,因?yàn)樗粫?huì)產(chǎn)生一個(gè)多余的字符:),也有人使用js的動(dòng)態(tài)設(shè)置標(biāo)題,但這你讓搜索引擎怎么辦?

動(dòng)態(tài)控制page頁的head信息其實(shí)很簡單
先看演示: http://www.lvjiyong.com/demo/aspnet/setheader/
演示做的很簡單,大家可以下了源碼好好看,注解里面都有了

主要使用了literal與placeholder
方法放置在basepage里,下次讓webform繼承basepage類就可以調(diào)用了
使用literal設(shè)置title信息
使用placeholder載入樣式表與腳本
literal允許我們直接設(shè)置文本信息,使用時(shí)我們先讓程序查找是否有指定的literal控件,如果有則設(shè)置text


        /**//// <summary>
        /// 設(shè)置head信息
        /// </summary>
        /// <param name="_name">控件</param>
        /// <param name="_control">文本</param>
        private void setheader(string _control,string _text)
        {
            literal obj = this.findcontrol(_control) as literal;
            if(obj != null)
            {
                obj.text = _text;
            }
        }
比如我們在head區(qū)設(shè)置了<asp:literal id="pagetitle" runat="server" />,我們可以這樣設(shè)置標(biāo)題
這里先準(zhǔn)備一個(gè)方法
  /**//// <summary>
  /// 設(shè)置網(wǎng)頁標(biāo)題
  /// </summary>
  /// <param name="_title">網(wǎng)頁標(biāo)題</param>
  protected void settitle(string _title)
  {
   setheader("pagetitle","<title>" + _title + "</title>");
  在webfrom中我們就可以這樣設(shè)置標(biāo)題了
this.settitle("呂的部落格");
description,keywords等的方法一樣,不過要設(shè)置meta,這個(gè)就不講了,可以看源碼

下面我再說一下js與css的載入,這次我們用到的是placeholder控件,為什么用這個(gè)不沿用literal,自己想想
placeholder一般只占用位置,方便我們動(dòng)態(tài)加載控件,這樣載入js與css就方便多了
首先了也是查找指定的placeholder控件
        /**//// <summary>
        /// 查找loadheader的placeholder容器
        /// </summary>
        /// <returns></returns>
        private control findheader()
        {
            return this.findcontrol("loadheader");
        }再是動(dòng)態(tài)加入控件
        /**//// <summary>
        /// 裝載控件到placeholder控件
        /// </summary>
        /// <param name="_obj"></param>
        protected void loadplaceholder(htmlgenericcontrol _obj)
        {
            objheader = findheader() as control;

            //載入腳本文件
            if(objheader != null)
            {
                objheader.controls.add(_obj);

            }
        }要載入css或js我們先用htmlgenericcontrol創(chuàng)建子控件然后加到placeholder控件中
        /**//// <summary>
        /// 載入指定的樣式表文件
        /// </summary>
        /// <param name="_csspath">樣式表文件地址</param>
        protected void loadcss(string _csspath)
        {


            htmlgenericcontrol objcss = new htmlgenericcontrol("link");
            objcss.attributes["rel"] = "stylesheet";
            objcss.attributes["type"] = "text/css";
            objcss.attributes["href"] =  _csspath;
            objcss.attributes["media"] =  "screen";
            this.loadplaceholder(objcss);


        }
那我們在webform中要載入樣式表只要使用
this.loadcss("樣式表地址");載入js一樣,就不說了

在源碼中我寫的功能比這里說的強(qiáng)一點(diǎn)點(diǎn),大家可以自己下了看看.

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 江城| 铜陵市| 济南市| 汪清县| 九龙县| 乐业县| 江华| 新丰县| 大方县| 临沭县| 奎屯市| 鄂托克前旗| 石家庄市| 莱阳市| 微山县| 清新县| 芒康县| 林西县| 乌鲁木齐县| 兴文县| 永顺县| 许昌县| 永城市| 三都| 永年县| 兴宁市| 常熟市| 肃南| 南郑县| 商都县| 安徽省| 顺义区| 西城区| 河间市| 城固县| 磐安县| 堆龙德庆县| 封丘县| 会理县| 彰化县| 安新县|