网页head区,不能用普通控件,但它有时又很重要,比如title、keywords、description,可能每个页面都不同,那么怎么样才能根据内容动态设置它们呢?

  方法1:asp能做到的,asp.net当然可以做到,只要你把整个页面都用Response.Write()写出来,没有什么不能自定义的,当然也可以"<%=某个成员%>"。但很明显,这样发挥不了.net的特点。

  方法2:利用asp.net的特有属性:runat="server",给title设置一个id,然后让它成为服务器变量,那就可以设置其文本了。但这样出来的html里边也会带有id,看着实在不爽。
后台:
protected System.Web.UI.HtmlControls.HtmlGenericControl titleControl;
titleControl.InnerText="我把标题给改了!";

  方法3:利用Literal控件,前台:

<HEAD>
        <asp:Literal ID="lt_title" Runat="server" />
        <asp:Literal ID="lt_keywords" Runat="server" />
        <asp:Literal ID="lt_descri" Runat="server" />
    </HEAD>

  后台:

private void Page_Load(object sender, System.EventArgs e)
    {
        lt_title.Text = "<title>标题</title>";
        lt_keywords.Text = "<meta name=\"keywords\" content=\"关键字\">";
        lt_descri.Text = "<meta name=\"description\" content=\"描述\">";
    }

  这样就基本达到完美了。

  更进一步,我的页面用了不少用户控件,并且这些用户控件有层次,而决定页面title的,可能是某个用户控件中的子用户控件来决定的,而且用户控件的嵌套层次不固定。 那要怎么来动态设置呢?

  首页,做一个用户控件的基类,并且给它增加1个public方法:

public void SetTitle(string title)
        {
            SetLiteralText("lt_title", string.Format("<title>{0}</title>", title));
        }再增加一个private方法:
        private void SetLiteralText(string id, string text)
        {
            Literal lt = null;
            Control ctrl = this;
            do
            {
                ctrl = ctrl.Parent;
            }while(ctrl != null && ctrl.GetType().FullName != "System.Web.UI.HtmlControls.HtmlForm" );

if(ctrl != null)
            {
                lt = ctrl.FindControl(id) as Literal;
                if(lt != null)
                    lt.Text = text;
            }
        }

  这样,你的用户控件只需要让它继承自这个基类,然后在你想设置页面的title时调用base.SetTitle("标题"),就简单的完成了任务。对于head区其它标记,原理和设置title一样。

转载于:https://www.cnblogs.com/xinyuxin912/archive/2007/09/16/894986.html

[转]ASP.NET页面HEAD区动态设置全攻略相关推荐

  1. ubuntu设置全攻略

    说明,本文档根据网上的文档修改而成,凡是经过自己实践的都做了修改. 硬盘安装: 将iso文件和wubi.exe(从iso中解压出来的)两个文件放到任意同一目录下,在windows下点击wubi.exe ...

  2. 网吧的服务器设置全攻略

    网吧的服务器设置全攻略 作者: 出处:网吧联盟  ( 60 ) 砖  ( 60 ) 好  评论 ( 1 ) 条 进入论坛 更新时间:2006-03-01 11:37 关 键 词:网吧服务器应用设置 阅 ...

  3. Win2000服务器设置全攻略电子书

    虽然操作系统发展的相当快,但是用Win2000来作为服务器操作系统的人还是不少.看了这本网络上下载的<Win2000服务器设置全攻略>,感觉还算不错,全书共包括四十篇文章,详细的讲述了Wi ...

  4. asp功放怎么装_汽车音响安装全攻略--功放篇

    汽车音响安装全攻略--功放篇 安装功放比安装接收机或扬声器更需要一些技巧,但并不意味着不可操作.事先了解注意事项,可以减少发生故障的机率. 安 装 第一步:作好准备工作 功放与接收机间必须保持至少90 ...

  5. 小技巧大用处:微信小程序状态栏设置全攻略

    前言 我们在使用微信小程序的时候,经常会发现小程序的状态栏与我们手机的状态栏不太一致.有时候状态栏的颜色与我们小程序的主题色不相符,有时候状态栏的文字内容也不太符合我们的需求.为了解决这些问题,我们需 ...

  6. SQL Server 2005 Express 远程连接 客户端 远程访问 设置 全攻略 (适用 SQL Server 2005 其他版本)

    SQL Server 2005 Express 是微软提供的数据库的低端解决方案, 可免费任意随产品分发, 可以在XP等非专业服务器系统下安装, 还可以远程访问, 对于小型数据应用程序已足够满足数据使 ...

  7. 每步动态解析设置全攻略

    Meibu二级域名及其动态域名解析完全免费使用!是最稳定.快速的服务. 可建立自己的网站. 每步动态IP域名解析系统支持建立WEB服务.FTP服务.Email服务.游戏服务器.视频服务.网上电台. 数 ...

  8. 服务器安全设置全攻略

    一.Windows Server2003的安装 1.安装系统最少两需要个分区,分区格式都采用NTFS格式 2.在断开网络的情况安装好2003系统 3.安装IIS,仅安装必要的 IIS 组件(禁用不需要 ...

  9. Win2003 Server手动设置全攻略

    最近自己正式安装了Windows 2003 server,感觉很多地方要手动设置后才好用,以下将记录我的DIY的心得,希望对大家有点用处! 1.禁用Internet Explorer Enhanced ...

最新文章

  1. Decoders对于语义分割的重要性 | CVPR 2019
  2. 配置发布和禁用复制功能时提示 分发服务器未正确安装。
  3. 一个诡异的循环:意识何以意识到意识自身?
  4. 左侧固定右侧自动填充_办公小技巧:解决Excel公式自动填充问题
  5. LeetCode 375. Guess Number Higher or Lower II
  6. 《软件建模与设计: UML、用例、模式和软件体系结构》一一
  7. PCA目标函数的推导
  8. 自动化特征工程和自动建模在风控场景的应用
  9. 程序员,为什么如此迷茫?
  10. 巧合?模仿还是抄袭?水木年华的《秋日恋歌》和Lube 乐队的《Pozovi Menya Tiho Po Imeni》...
  11. 物理与计算机信息工程学院,泉州师范学院物理与信息工程学院
  12. 吴恩达深度学习1.2练习_Neural Networks and Deep Learning
  13. k8s核心技术-Helm(快速部署应用)---K8S_Google工作笔记0046
  14. EJB3.0学习笔记--SOAP-AXIS--深入Soap引擎
  15. 智能家居行业的数据传输保护
  16. Lombok不起作用原因
  17. 怎么打散铺铜_怎么做绵软香甜的黑米糕,不加酵母,加鸡蛋和一碗黑米粉一搅拌...
  18. 围观Razavi和Sansen打架——电流并联反馈
  19. ANC主动降噪的量化描述
  20. win10开机启动ps1脚本

热门文章

  1. Incorrect string value: '/xE7/xA8/x8B/xE5/xBA/x8F...' for column 'course' at row 1
  2. CentOS 6.4 命令行 安装 VMware Tools
  3. 三层架构 android访问MSSQL数据库 程序 (服务器端)
  4. Javascript Math.ceil与Math.round与Math.floor区别
  5. [译]Kinect for Windows SDK开发入门(八):骨骼追踪进阶 上
  6. Nhibernate代码自动生成工具[转]
  7. 一个员工的离职成本有多恐怖!
  8. 领域驱动设计(DDD)前夜:面向对象思想
  9. 收藏!架构师需要掌握的99条铁律
  10. Spring Cloud 入门 之 Hystrix 篇(四)