选择显示字体大小

asp.net页面中标题单点解决方案


  最近在使用.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的结果。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons