• 在线音乐试听
  • 电影观看找一找
  • 微客许愿LOVE墙
  • 官方博客
  • 站长博客
中国微(微机)客网
站点选择: 网通镜像
  • 首 页
  • 电脑基础
  • 软件教程
  • 代码编程
  • 站长专区
  • 网络资源
  • 新闻娱乐
  • 站长博客
向站长投递您的原创文章 对本站意见反馈
  • 站长热点通告:电脑技术集中营!新上线版块: 点击许愿LOVE墙 点击进入站长博客 点击观看在线电影 点击试听在线音乐
  • 电脑硬件
  • 操作系统
  • 软件应用
  • 优化技巧
  • 防黑安全
  • P S 教程
  • Flash教程
  • Dreamweaver
  • 软件下载
  • Asp编程
  • Php编程
  • .Net编程
  • Access
  • MysQl
  • mssql
  • 其他代码
  • 站长工具
  • 搜索优化
  • 网站推广
  • 网站盈利
  • 域名空间
  • 网盘※相册
  • 综合其他
  • 游戏娱乐
  •                             | 在线音乐试听下载 | 在线电影观看| 在线小游戏| IT热点资讯 | 软件动态
                                      | 论坛快速注册 | 论坛会员登陆 | 论坛快速进入 | 许愿LOVE墙登陆
当前位置:中国微客网>>编程在线>>.Net编程>>浏览文章 软件搜索

ASP.NET页面中标题单点解决方案

作者:未知 | 来源:互联网 | 文章点击数: | ChinaVik.Com

最近在使用.net2.0中ms提供的页面导航组件sitemappath时,想到了一种解决页面标题不同步的一种简单而又方便的机制。

  目前存在的问题:

  一、整个网站中aspx页面标题通常没有统一的存放位置,针对每个页面要么把页面标题直接硬编码在页面的aspx文件中,要么通过aspx.cs动态写进去(1.1中还要加入额外的标题控件,2.0中可以使用Page.Title属性),而整个站点如果网页很多的话,这种重复逻辑的代码就要写很多次,极其不美观,并且无法在其它用到标题信息的地方实现同步。

  二、即使为了支持多语言支持把所有的页面标题都放入资源(或xml)文件中,通过通一的程序代码来加载标题也会存在一个问题,就是页面中用到页面标题的地方可能不仅在标题区如(页面导航控件),如何让这些控件也从这些资源文件(或xml)中取得这些标题信息也是一个头痛的问题。

  要达到的目的:

  一、在整个网站中的主模板中一次性解决网页标题的所有问题,所有网站中使用的标题均放在Web.sitemap(可支持多语言)中维护,这样也可以同时同步维护页面的导航信息。

  二、在弹出窗体的标题中自动为每一个网站标题后面加入站点名称如(用户登录|七思软件),但在页面导航控件中引用标题时则不出现这个站点名称,如(主页>会员中心>用户登录)。

  三、当aspx.cs的程序中引用page.Title属性时不能有站点名称如页面标题栏中显示的为(用户登录|七思软件),但在页面的正常程序中引用的page.Title值为(用户登录)。

  具体的实现方法如下:

  在网站的masterpage中加入以下代码:

protected void Page_Load(object sender, EventArgs e)
{
 if (!this.IsPostBack)
 {
  this.searchDescription.Content = this.SearchDescription;
  this.searchKeywords.Content = this.SearchKeywords;
 }
 if (SiteMap.CurrentNode != null)
 {
  this.Page.Title = SiteMap.CurrentNode.Title;
 }
 else
 {
  this.Page.Title = "尚未在Web.sitemap配置此页面导航";
 }
}
protected override void Render(HtmlTextWriter writer)
{
 this.Page.Title = this.Page.Title + " | " + Keyss.WebFramework.ConfigManager.GetInstance().SiteName;
 base.Render(writer);
}

  解释:

  一、之所以不在(!this.IsPostBack){}块中实现页面判断是因为page.Title中无法保存视图状态,我觉得这是.net2.0中的一个小bug吧。

  二、之所以在render方法重写title属性是因为在页面的生存期中,render方法不会保存viewstate,而从写page.Title内容仅在masterpage中有效是因为masterpage负责页面标题的render,在其后的page的render方法中,title已经render完毕,些时改变title并不会影响render的结果。
 


朋友若要转载,采集本站内容,请注明出自www.chinavik.com-中国微(微机)客网(搜集整理不容易)

上一篇:ASP.NET数据缓存Oracle数据(Data Caching) 下一篇:Asp.net中实现从弹出窗口中选择值

关键字 Tags:  asp.net 代码 解决
 查看所有评论请《点击右侧发表评论》【发表评论】【告诉好友】【打印此文】【收藏此文】【关闭窗口】



 发表评论 特别声明:
·本站发布内容均为客观表达作者观点,不代表站长立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为

网络广告信息

中国微客网音乐频道开通:在线MP3听歌、歌词下载 中国微客网影视频道开通:电影搜索引擎,在线看电影,电影在线观看,免费电影-在线观看下载,最新大片

推荐文章

  • ·ASP.NET实现投票结果的图片进度条 2008/02/07
  • ·ASP.Net 2.0 图形控件简述 2008/02/07
  • ·ASP.NET数据缓存Oracle数据(Data 2008/01/25
  • ·ASP.Net切换CSS实现多风格页面的 2008/01/25
  • ·在.NET 2.0框架下动态创建Access 2008/02/07
  • ·ASP.NET 2.0–善用DataSourceMod 2008/02/07
  • ·.net2.0邮件发送代码 2008/02/07
  • ·Asp.net中实现从弹出窗口中选择值 2008/02/04
  • ·ASP.NET页面中标题单点解决方案 2008/02/04

热点资讯

  • ·ASP.NET数据缓存Oracle数据(Data 2008/01/25
  • ·ASP.Net切换CSS实现多风格页面的 2008/01/25
  • ·在.NET 2.0框架下动态创建Access 2008/02/07
  • ·ASP.NET 2.0–善用DataSourceMod 2008/02/07
  • ·.net2.0邮件发送代码 2008/02/07
  • ·Asp.net中实现从弹出窗口中选择值 2008/02/04
  • ·ASP.NET页面中标题单点解决方案 2008/02/04

设为首页 - 加入收藏 - 联系站长 - 友情链接 - 网站留言 - 广告合作 - 网站地图


郑重声明:本站内容均来自网上,请网友自行辨别!如有侵权请及时告知,我们会马上处理!...本站内容纯手工录入,若转载请注明出处,万分感谢。
点击技术支持,建议合作 QQ:在线交谈11753718 QQ交流群 47614632 E-Mail:chinavik#163.com 电话tell:15898705041 chinavik#126.com
Copyright 2006-2008 Powered by 中国微客-电脑技术在线All Rights Reserved
备案/许可证号:鲁ICP备08002060号