All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
SQL Server2005数字转中文大写字母_[SQL Server教程]
visual c++中静态文本控件(Static Text)
SQL,Server日期计算_[SQL,Server教程]
C#中提供的VB不支持的新特性_.net资料_编程技术
ASP.NET2.0应用的全球化与本地化之本地化_.net资料_编程技术
使用XMLHttpRequest与DOM对象_[XML教程]
PHP实例:PHP制作的网站意见在线反馈表_[PHP教程]
按指定排列顺序获取数据的sql语句_[SQL Server教程]
在C#中使用帮助文件
SQL循序渐进(21)更多的子查询_[SQL,Server教程]
Reading number is top 10 pictures
Discharge accidentally Actresses by the breast1
Household design comfortable contracted
The money of more than 100 countries and regions5
The money of more than 100 countries and regions17
寒流来了
Plump, too plump!2
photos of ashlynn brooke(ashlynn brooke的美图)
红楼梦金陵十二钗(1)
中国女孩大胆自拍,显露完美身材3
NeedWallpaper3
Download software ranking
C#与.NET技术平台实战演练
传奇私服架设教程-chm
C#COM编程指南
实战黑客不求人
Tram sex maniac 2 (H) rar bag14
Boxer's Top ten classic battle4
Proficient in JavaScript
圣殿祭司的ASP.NET.2.0.开发详解-使用C#
变速齿轮3.26
软件工程思想
aaa published in(发表于) 2013/12/13 9:42:28 Edit(编辑)
原创:在ASP.NET2.0中实现主页嵌套_.net资料_编程技术

原创:在ASP.NET2.0中实现主页嵌套_.net资料_编程技术

原创:在ASP.NET2.0中实现主页嵌套_.net资料_编程技术-你的首页-uuhomepage.com

现在的很多商业公司都设有不同的部门,而这些部门在公司的网站上都有自己的子网站。一般情况下,每一个部门都会根据自己的需要来维护各自的网站。这样做虽然会使公司的网站显得丰富多彩,但这却会对用户的访问带来不便,也就是说,由于各个部门的子网站没有保持一致性而使用户在浏览网站时造成了困难。幸运的是,ASP.NET2.0为我们提供了一种解决方案,这就是主页嵌套。


建立嵌套主页


首先需要建立一个标准的主页,在这个主页上需要加上一些共用的东西,如公司的Logo、公司名称、页脚以及菜单等,而每个部门的子网站必须使用这个标准的主页。每一个部门可以根据自己的业务需要建立各自的主页,然后将这些部门的主页嵌入刚才建立的标准中。这样做无论对最终的用户还是对每个部门都是有好处的,对于最终用户,无论他访问哪个部门的网站,都会看到同样的Logo、菜单以及页脚。而对于部门来说,他们可以自己建立一个内嵌的主页,这个主页的内容可以根据自己部门的业务需要而定。这就象是一个OCX控制嵌在网页上一样。


为了理解如何建立嵌套主页,下面让我们看一个例子。首先给出一个标准主页的例子。





以下是引用片段:
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="WebsiteMasterPage.master.cs" Inherits="WebsiteMasterPage" %>


标准主页例子





































部门1
部门2














&nbsp;







注脚









上面的标准主页定义了公司的Logo、注脚和菜单的位置。还定义了部门的主页要嵌入的位置(这个要使用ContentPlaceHolder控件)。部门主页的代码中和上面的代码有些不同,在部门主页的代码中需要引用上述的标准主页。这个可以通过在部门主页代码中加入MasterPageFile属性实现。下面是一个部门的主页代码:





以下是引用片段:
<%@ Master MasterPageFile="~/Templates/WebsiteMasterPage.master" Language="C#" AutoEventWireup="true" CodeFile="NestedMasterPage.master.cs" Inherits="NestedMasterPage" %>







部门主页

















从上面的代码可以看出其中引用了标准主页WebsiteMasterPage.master。而且还定义了一个服务端控件来引用在标准主页中定义的ContentPlaceHolderIDIDMain)。由于部门主页被嵌套在标准主页中,因此,必须使用Content服务端控件。还有就是必须加入ContentPlaceHolder控件,这个控件指示了部门主页显示的位置。


现在这个部门主页已经被嵌入到标准主页中了。部门的主页可以自动继承标准主页的Logo、注脚和菜单。如果要更换这些公共的元素,只需更新这个标准主页即可。而且各部门也可根据自己的需要来更新内嵌在标准主页的部门主页。程序运行界面如图1所示。


原创:在ASP.NET2.0中实现主页嵌套



1


  在Visual Studio2005中使用嵌套主页




  我们从上面的部门主页代码中可以看到,MasterPageFile属性引用了标准主页。但这个属性在Visual Studio2005中并不支持可视化编辑。因此,要想在VS2005的设计视图中编辑主页,必须将MasterPageFile设为空串。如下面的代码如示:




<%@ Page Language="C#" MasterPageFile="" Title="部门主页" %>



  当我们将MasterPageFile设为空串后,在每次更新标准主页后在发布时都得手工来修改这个属性。如果不想这么麻烦的话,可以通过一些手段来欺骗一个Visual Studio .NET的设计视图。首先建立一个从System.Web.UI.Page继承的类(将这个类命名为BasePage)。在这个类中定义一个RuntimeMasterPageFile属性(这个属性可以使用任何名子)。实现代码如下:



public class BasePage : System.Web.UI.Page {
private string _RuntimeMasterPageFile;

public string RuntimeMasterPageFile {
get {
return _RuntimeMasterPageFile;
}
set {
_RuntimeMasterPageFile = value;
}
}

protected override void OnPreInit(EventArgs e) {
if (_RuntimeMasterPageFile != null) {
this.MasterPageFile = _RuntimeMasterPageFile;
}
base.OnPreInit(e);
}
}


BasePage还重载了OnPreInit方法,以便在Aspx页装载时可以动态地设置MasterPageFile属性。实现了BasePage类后,以后需要内嵌的aspx中的类就可以直接从BasePage继承了。






public partial class MyNestedMaster : BasePage {

// 具体的实现代码
}



下面我们来修改.aspx文件。首先将MasterPageFile属性设为空串,并且将RuntimeMasterPageFile属性直接加到aspx文件中,并将它的值设为内嵌主页的路径。然后设置CodeFileBaseClass属性为"BasePage",实现代码如下:



<%@ Page Language="C#" MasterPageFile=""
RuntimeMasterPageFile="~/Templates/NestedMasterPage.master"
CodeFileBaseClass="BasePage"
Inherits="MyNestedMasterAndBasePage" AutoEventWireup="true"
CodeFile="MyNestedMasterAndBasePage.aspx.cs Title="Page1" %>


&nbsp;

&nbsp;


财务部主页

&nbsp;

&nbsp;




  在运行时,BasePage类将被实例化,而MasterPageFile属性将被动态地设置为RuntimeMasterPageFile属性的值。





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.