打开ContentRegion的代码

这代码实在太简单了!
继承自Panel后就几乎什么都没做嘛!
估计是作为基类的,因而暂不分析,
待以后碰到它的子类后再作细究!


分析"~/AggSite/Template.ascx"之前,
我们先来了解一下什么是ascx,
《Microsoft ASP.NET 深入编程》里的一段话很好:


也有人简单的说:

aspx是页面文件
ascx是用户控件,用户控件必须嵌入到aspx中才能使用。

ascx是用户控件,相当于模板

其实ascx你可以理解为Html里的一部分代码,
只是嵌到aspx里而已,
因为aspx内容多的时候实在是不太好管理,
而且你把公共的Html部分写成ascx也可以公用在很多aspx里
比如Web页的下面注释部分

这下我们对ascx文件应该有点感觉了吧?如果还不懂就再去网上好好恶补一番了。。。


我们回头再来看看template.ascx的代码是不是清楚一些了

 1<%@ Register TagPrefix="uc1" TagName="Footer" Src="Footer.ascx" %>
 2<%@ Register TagPrefix="uc1" TagName="SiteCategory" Src="SiteCategory.ascx" %>
 3<%@ Register TagPrefix="uc1" TagName="PostsList" Src="PostsList.ascx" %>
 4<%@ Register TagPrefix="uc1" TagName="Header" Src="Header.ascx" %>
 5<%@ Register TagPrefix="uc1" TagName="SiteSearch" Src="SiteSearch.ascx" %>
 6<%@ Register TagPrefix="uc1" TagName="PagedPosts" Sr="PagedPosts.ascx" %>
 7<%@ Register TagPrefix="uc1" TagName="SiteNavigate" Src="SiteNavigate.ascx" %>
 8<%@ Register TagPrefix="uc1" TagName="Syndication" Src="~/AggSite/Syndication.ascx" %>
 9<%@ Register TagPrefix="uc1" TagName="AggStats" Src="~/AggSite/AggStats.ascx" %>
10<%@ Register TagPrefix="uc1" TagName="BlogList" Src="~/AggSite/BlogList.ascx" %>
11<%@ Register TagPrefix="DT" Namespace="Dottext.Web.UI.WebControls" Assembly="Dottext.Web" %>
12<%@ Register TagPrefix="uc1" TagName="FriendLink" Src="FriendLink.ascx" %>
13<uc1:header id="Header1" runat="server"></uc1:header>
14<div id="authors"><DT:CONTENTREGION id="LeftColumn" runat="server">
15        <uc1:SiteNavigate id="SiteNavigate1" runat="server"></uc1:SiteNavigate>
16        <uc1:SiteCategory id="SiteCategory1" runat="server"></uc1:SiteCategory>
17        <uc1:SiteSearch id="SiteSearch1" runat="server"></uc1:SiteSearch>
18        <uc1:Syndication id="Syndication1" runat="server"></uc1:Syndication>
19        <uc1:AggStats id="AggStats1" runat="server"></uc1:AggStats>
20        <uc1:FriendLink id="FriendLink1" runat="server"></uc1:FriendLink>
21        <uc1:BlogList id="BlogList1" title="博客排行榜" runat="server"></uc1:BlogList>
22    </DT:CONTENTREGION></div>
23<div id="main"><DT:CONTENTREGION id="MPMain" runat="server"></DT:CONTENTREGION></div>
24<div id="footer"><uc1:Footer id="Footer1" runat="server"></uc1:Footer></div>
25

原来在MasterPage加载的template.ascx里还继续引用了很多的用户控件!
这里边的用户控件我们留在以后一个一个分析

我们还注意到了上面有一行代码是和其他不一样的:
11    <%@ Register TagPrefix="DT" Namespace="Dottext.Web.UI.WebControls" Assembly="Dottext.Web" %>
这个貌似用户控件的声明是不是用户控件呢?
带着疑问我们又开始搜文之旅---
还是《Microsoft ASP.NET 深入编程》里的一段话:


既然组合控件和自定义控件的实现效果是一样的,
这里也就不再深入了,以后碰到再说好了。

-------------------------------------------------------------------------------------------------------------------
由于template没有codebehind,
所以template.ascx的分析也基本可以告一段落了,
最后让我们用template.aspx来结束这次blog吧