定義與說明:
主版頁面是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
函數.
主版頁面的嵌套:
主版頁面可以嵌套,讓一個主版頁面引用另外的頁作為其主版頁面。利用嵌套的主版頁面可以建立組件化的主版頁面。例如,大型網站可能包含一個用於定義網站外觀的總體主版頁面。然後,不同的網站內容夥伴又可以定義各自的子主版頁面,這些子主版頁面引用網站主版頁面,並相應定義該夥伴的內容的外觀。