gxc

永远不要认为有什么事情是理所当然的!

  :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
        所谓母版页(master page)就像是一个基类,它里面可以定义好一些内容页,就像是定义接口一样,如果其他页面引用了这个母版页,有点继承的味道了,那么这个新页面的框架必定跟母版页一样,而且它改写了内容页的话就等于是“重载了接口”接口一样。
        很多时候,我们的网站中有很多页面可能含有一些公共的部分,比如说,msdn里面的header和左边的tree。说到这个,大家可能会马上想到iframe,嗯!但是iframe在解决各个页面之间传递信息会比较麻烦,究竟iframe有多烦,我一时间也说不出来,看完下面的例子你可能就会明白了。
新建一个母版页,就像是普通的page一样,不过不是webform,而是masterpage,比如是test.master。然后在母版页里面加入公共的部分,例如随便加入一些table之类的东西,当然最重要的加上1个或者n个内容页了,否则就没有意义了,
<asp:contentplaceholder id="Main" runat="server">XXXX</asp:contentplaceholder>
注意这个id很重要,因为等一下你改写这个内容页也是要对应这个id的,至此,母版页定义完成。然后就是应用母版页了。
新建一个webform,引用母版页
<%@ Page MasterPageFile="~/test.master" %>
当然还有两种方法全局引用和动态引用,就是在web.confing里面或者在后台代码指定。
下一步是指定内容页,
<asp:Content ContentPlaceHolderID="Main" RunAt="server">
  XXXXX
</asp:Content>
 如果想动态改变母版页的公共属性,就直接调用Master.属性=xxx。
是不是比iframe的页面之间互相传参简单很多?
    当然,我最终的目的不是想说iframe将会给masterpage所替代,毕竟它们不是同一回事,很多地方用iframe更为方便,各有所长吧!
posted on 2005-08-31 00:24  gxc  阅读(1164)  评论(2编辑  收藏  举报