日期:2014-05-17 浏览次数:20962 次
母版页是vs2005 以来最重要的新功能之一,可以为应用程序中的页创建一致的布局。单个母版页可以为应用程序中的所有页(或一组页)定义所需的外观和标准行为。然后可以创建包含要显示的内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并以将母版页的布局与内容页的内容组合在一起输出。
只看定义实在是太理论性了,我们来举个例子,说的浅显一点。例如超市中的购物袋,超市中的商品千差外别,但是袋子就一种或几种,上面都印着超市的Logo。购物袋加商品的组合基本上和母版页加内容页是一样的,在制作网站时,比如网页的Logo和页脚需要在多个页面中重用,则可以将其放在母版页(购物袋),让多个页面同享内容,将不同的内容部分制作成内容页(商品),最后将不同的内容页填充到母版页中。
由此母版页的优点也就显露出来:
(1)使用母版页可以集中处理页的通用功能,以便可以只在一个位置上进行更新。
(2)使用母版页可以方便地创建一组控件和代码,并将结果应用于一组页。例如,可以在母版页上使用控件来创建一个应用于所有页的菜单。
(3)通过允许控制占位符控件的呈现方式,母版页使您可以在细节上控制最终页的布局。
(4)母版页提供一个对象模型,使用该对象模型可以从各个内容页自定义母版页。
母版页的使用和普通页基本上相同,可以放置文件或图形,任何的HTML与Web控件,后置代码等等,母版页以.master结尾,不能被浏览器直接查看,必须被别的内容页使用才能查看。
这部分是从网上查到,感觉不错就记下来了
(一) 母版页使用内容页的控件
ContentPlaceHolder1.FindControl("gv1")as GridView;
(二) 内容页使用母版页的控件
母版页中:
public Panel PanelGv
{
get
{
return pnlGv;
}
}
(三) 母版页调用内容页的函数
母版页中:
public delegate void NoArgEventHandler();
public event NoArgEventHandler evt1;
//某函数中调用内容页函数:
{
if(evt1!=null)
evt1();
}
内容页中:
protected void Page_Load(object sender, EventArgs e)
{
Master.evt1 += new MasterPage.NoArgEventHandler(f1);
}
public void f1()
{}
(四) 内容页中调用母版页的函数
内容页可以直接调用母版页的public 函数.
母版页可以嵌套,让一个母版页引用另外的页作为其母版页。利用嵌套的母版页可以创建组件化的母版页。例如,大型站点可能包含一个用于定义站点外观的总体母版页。然后,不同的站点内容合作伙伴又可以定义各自的子母版页,这些子母版页引用站点母版页,并相应定义该合作伙伴的内容的外观。