仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 625|回复: 7
打印 上一主题 下一主题

[学习教程] ASP.NET网页编程之ASP.NET页面中题目单点办理计划

[复制链接]
金色的骷髅 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:47 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
无论谁倒了对双方阵营的粉丝们也是有害无益。asp.net|办理|页面  比来在利用.net2.0中ms供应的页面导航组件sitemappath时,想到了一种办理页面题目分歧步的一种复杂而又便利的机制。

  今朝存在的成绩:

  1、全部网站中aspx页面题目一般没有一致的寄存地位,针对每一个页面要末把页面题目间接硬编码在页面的aspx文件中,要末经由过程aspx.cs静态写出来(1.1中还要到场分外的题目控件,2.0中可使用Page.Title属性),而全部站点假如网页良多的话,这类反复逻辑的代码就要写良多次,极为不美妙,而且没法在别的用到题目信息的中央完成同步。

  2、即便为了撑持多言语撑持把一切的页面题目都放进资本(或xml)文件中,经由过程通一的程序代码来加载题目也会存在一个成绩,就是页面顶用到页面题目的中央大概不但在题目区如(页面导航控件),怎样让这些控件也从这些资本文件(或xml)中获得这些题目信息也是一个头痛的成绩。

  要到达的目标:

  1、在全部网站中的主模板中一次性办理网页题目的一切成绩,一切网站中利用的题目均放在Web.sitemap(可撑持多言语)中保护,如许也能够同时同步保护页面的导航信息。

  2、在弹出窗体的题目中主动为每个网站题目前面到场站点称号如(用户登录|七思软件),但在页面导航控件中援用题目时则不呈现这个站点称号,如(主页>会员中央>用户登录)。

  3、当aspx.cs的程序中援用page.Title属性时不克不及有站点称号如页面题目栏中显现的为(用户登录|七思软件),但在页面的一般程序中援用的page.Title值为(用户登录)。

  详细的完成办法以下:

  在网站的masterpage中到场以下代码:

protectedvoidPage_Load(objectsender,EventArgse)
{
 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设置此页面导航";
 }
}
protectedoverridevoidRender(HtmlTextWriterwriter)
{
 this.Page.Title=this.Page.Title+"|"+Keyss.WebFramework.ConfigManager.GetInstance().SiteName;
 base.Render(writer);
}
  注释:

  1、之以是不在(!this.IsPostBack){}块中完成页面判别是由于page.Title中没法保留视图形态,我以为这是.net2.0中的一个小bug吧。

  2、之以是在render办法重写title属性是由于在页面的保存期中,render办法不会保留viewstate,而从写page.Title内容仅在masterpage中无效是由于masterpage卖力页面题目的render,在厥后的page的render办法中,title已render终了,些时改动title其实不会影响render的了局。它有很多缺点的,有兴趣可以到网上去搜索一下。于是微软有发明了“下一代”C++:C++/CLI语言,这个可以解决在.NETFramework中,托管C++产生的问题。在《程序员》杂志上,lippman和李建中合作连载介绍了C++/CLI语言。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-25 09:21

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表