所谓母版页(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更为方便,各有所长吧!
引用地址:/archive//08/31/226579.html