用户名: 密码: 免费注册 忘记密码? 网站地图 | 加入收藏 | 设为首页
首页 | 新闻 | 工具 | 系统 | 办公 | 聊天 | 多媒体 | 网页 | 运营 | 平面 | 欣赏 | 数据库 | 程序 | 服务器 | 组网
网页 | 3dmax | Ghost | Windows Xp| Dreamweaver | photoshop | Flash | office | Alexa | Css | QQ | Asp | PHP | Jsp | Access
Flash MX 2004入门 | 网站推广策略 | CorelDRAW入门 | ASP学习 | 网站建设大师功 | Word入门
  iTbulo.com > 学院 > 程序开发教程 > ASP.net教程 > Asp.Net实例教程 > 文章正文
原创:在ASP.NET2.0中实现主页嵌套
iTbulo.COM 2007-3-1 李宁()

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

 建立嵌套主页

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

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

以下是引用片段:
<%@ Master Language="C#" AutoEventWireup="true"
CodeFile="WebsiteMasterPage.master.cs" Inherits="WebsiteMasterPage" %>
<html>
 <head runat="server" id="head">
    <title>标准主页例子</title>
 </head>
 <body>
   <form id="form1" runat="server">
     <table width="100%">
       <tr>
         <td bgcolor="#006633" colspan="2">
           <table border="0" cellpadding="0" cellspacing="0" width="100%">
       <tr>
               <td align="left">
                 <a href="/MasterPage/Default.aspx">
                   <img alt="Home Page" border="0" src="/MasterPage/images/logo.gif" />
                 </a>
               </td>
               <td align="right">
                 <img src="/MasterPage/images/header_image.gif"/>
               </td>
             </tr>
           </table>
         </td>
       </tr>
       <tr>
         <td width="25%">
           <font color="#3300FF">部门1 <br /> 部门2 <br /></font>
         </td>
         <td width="75%">
             <asp:ContentPlaceHolder ID="Main" runat="server">
             </asp:ContentPlaceHolder>
         </td>
       </tr>
       <tr>
         <td colspan="2"> </td>
       </tr>
       <tr>
         <td bgcolor="#0000FF" colspan="2">
               <font color="#FFFF00">注脚</font>
         </td>
       </tr>
     </table>
   </form>
 </body>
</html>
上面的标准主页定义了公司的Logo、注脚和菜单的位置。还定义了部门的主页要嵌入的位置(这个要使用ContentPlaceHolder控件)。部门主页的代码中和上面的代码有些不同,在部门主页的代码中需要引用上述的标准主页。这个可以通过在部门主页代码中加入MasterPageFile属性实现。下面是一个部门的主页代码:

以下是引用片段:
<%@ Master MasterPageFile="~/Templates/WebsiteMasterPage.master" Language="C#"   AutoEventWireup="true" CodeFile="NestedMasterPage.master.cs"   Inherits="NestedMasterPage" %>
<asp:Content ID="Content1" ContentPlaceHolderID="Main" runat="server">
<table width="100%">
<tr>
    <td style="background-color:BLUE; font-weight: bold; coloar: white">
                  <font color="#FFFF00" >部门主页 </font>
    </td>
  </tr>
  <tr>
     <td>
     <asp:ContentPlaceHolder ID="NestedMain" runat="server" />
     </td>
   </tr>
 </table>
</asp:Content>
 

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

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

点击放大此图片

1

[1] [2] 下一页

文章搜索
相关资讯
相关文章 相关下载
在ASP.NET中上传图片并生成缩略图
Excel在.Net下驻留内存的解决方法
ASP.NET中常用的优化性能方法详解
网友原创:从N层到.NET详细剖析原理
经验之谈:MySQL与ASP.NET配合更强大
焦点信息