日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

ASP.NET 2.0 之 Master Page 学习笔记 --zt

發布時間:2025/4/5 asp.net 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ASP.NET 2.0 之 Master Page 学习笔记 --zt 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如何使用 MasterPage

1. 創建 MasterPage,后綴名 .master, 如 x.master.
??? 其中用 <asp:ContentPlaceHolder /> 定義空位。如:

??? <asp:ContentPlaceHolder ID="ContentPlaceHolder1" Runat="Server">
??? </asp:ContentPlaceHolder>


2. 創建內容頁面。
??? 在 NewItem 對話框里選擇 "select master page", 選擇上一步創建的 MasterPage.
??? 產生的代碼里, MasterPageFile 屬性指定了 MasterPage 的位置:

??? <%@ Page Language="VB" MasterPageFile="~/x.master" Title="無標題頁面" %>

??? 頁面里用 <asp:Content /> 來添加內容到對應的空位:

??? <asp:Content ID="Content1" ContentPlaceHolderId="ContentPlaceHolder1" Runat="Server">
??????? 內容
??? </asp:Content/>

??? 內容頁面沒有 <form id="form1" runat="server">


3. 利用 MasterPage 可以使用多種語言來編寫一個頁面的各個部分。


4. 除了在 <%@ Page %> 里面指定 MasterPage, 也可以在 web.config 指定:

??? <configuration>
??????? <system.web>
??????????? <pages masterPageFile="~/x.master" />
??????? </system.web>
??? </configuration>

??? 這樣定義后,如果創建 Page 時選擇了 master page, 則在 <%@ Page %> 里面不需要指定即可使用該 MasterPage.
??? 其他頁面要使用不同的 MasterPage 的話,只要用第一種方法在 Page directive 里面明確的覆蓋 web.config 里的設置即可。

??? 可以僅對一組 pages 指定 MasterPage. 下例利用 web.config 的 location 元素,設定了 Admin 目錄下的頁面采用的不同的 MasterPage.

??? <configuration>
??????? <location path="Admin">
??????????? <system.web>
??????????????? <pages masterPageFile="~/y.master" />
??????????? </system.web>
??????? </location>
??? </configuration>


5. 在內容頁面如何設定 Page 的 Title ?

??? 默認情況下,Title 在 MasterPage 中指定后,其他具體頁面就都使用這個 Title.
??? 在具體頁面,可以有兩個辦法修改 Title:
???
??? a. <%@ Page Title="test" %>

??? b. 代碼中:

??????? protected void Page_LoadComplete(object sender, EventArgs e)
??????? {
??????????? Master.Page.Title = "Hello";
??????? }

???
6. 訪問 MasterPage 中的屬性和控件。

??? 用 Master 屬性來訪問。

??? a. 假設 MasterPage 中有一個 Label1, 那么在內容頁面可以這樣:

??????? protected void Page_LoadComplete(object sender, EventArgs e)
??????? {
??????????? string text = (Master.FindControl("Label1") as Label).Text;
??????? }

??????? 頁面加載的次序:
???????
??????? 要獲取在 MasterPage 的 Page_Load 里面設定的值,必須在內容頁面的 Page_LoadComplete 中來寫。

??????? 前面提到的 FindControl() 方法來查找 MasterPage 中的控件,是一種后期綁定的做法,一般是不安全的。因為這取決于 MasterPage 中是否存在這個 tag,如果被刪除了,則會導致錯誤。
??????? 比較好的做法是,在 MasterPage 中用屬性封裝對他的控件的訪問;如果用 FindControl(), 則總是檢查其結果是否為 null.


7. 指定 MasterPage 中的默認內容

??? 直接在 <asp:ControlPlaceHolder /> 標簽之間指定即可。
??? 如果子頁面不重新指定,則會采用該默認內容。


8. 編程的方式指定 Master Page

??? protected void Page_PreInit(object sender, EventArgs e)
??? {
??????? Page.MasterPageFile = "~/x.master";
??? }


9. 嵌套的 Master Page

??? Master Page 可以繼承自更高層次的 Master Page. 但是在 VS2005 中創建這種子 Master Page 的時候,不會有默認的支持。
??? 假設有了一個 A.master,
??? 我們現在先創建一個普通的 B.master,
??? 然后刪除其中除了 Page directive 的其他部分。
??? 把 Page Directive 修改為如下,并加入自己要定義的 PlaceHolder:

??? <%@ Master MasterPageFile="~/A.master" %>

??? <asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="server">
??????? Hello!
??????? <asp:ContentPlaceHolder ID="ContentPlaceHolder2" Runat="server">
??????? </asp:ContentPlaceHolder>
??? </asp:Content>

??? 用嵌套的模板產生的子頁面將不能采用 VS2005 的 design 模式。


10. 容器特定的 Master Pages

??? 為了能兼容不同的瀏覽器,asp.net 2.0 支持多個 Master Page. 在運行時將自動加載合適的 Master Page.

??? 語法如下:

??? <%@ Page Language="VB" MasterPageFile="~/Abc.master"
??????? Mozilla:MasterPageFile="~/AbcMozilla.master"
??????? Opera:MasterPageFile="~/AbcMozilla.master" %>


11. 頁面請求的次序

??? 當用戶請求一個用 Master Page 構建的頁面時,各種事件發生的次序如下:

??? Master Page 子控件初始化;
??? 內容頁面子控件初始化;
??? Master Page 初始化;
??? 內容頁面初始化;
??? 內容頁面 Page_Load;
??? Master Page 的 Page_Load;
??? Master Page 子控件加載;
??? 內容頁面子控件加載;

???
??? 注意點:
???
??? 因為內容頁面的 Page_Load 先于 Master Page 的 Page_Load,所以,如果要訪問 Master Page 里的服務器控件,則必須在內容頁面的 Page_LoadComplete 方法里書寫代碼。


12. 使用緩存

??? 只有在內容頁面才可以使用如下的 directive 指定緩存:

??? <%@ OutputCache Duration="10" Varybyparam="None" %>

??? (這個指令讓服務器在內存里緩存該頁面 10 秒鐘)

??? 如果對 Master Page 指定該指令,本身并不會引發錯誤。但是當他的子頁面下一次來獲取其 Master Page 的時候,如果這時 Master Page 已經過期,則會引發一個錯誤。
??? 所以實際上只能對子頁面指定緩存。

總結

以上是生活随笔為你收集整理的ASP.NET 2.0 之 Master Page 学习笔记 --zt的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲AV无码一区二区伊人久久 | 午夜视频www | 三级av| 岛国av网址 | 韩国av电影在线观看 | 涩涩视频网站在线观看 | 国产又粗又猛又爽又黄视频 | 国产成人精品一区 | 黄页网址大全免费观看 | 成人免费一级片 | 国产模特av私拍大尺度 | 天天夜夜骑 | 四虎免费av| 国产黄色大片 | 屁股夹体温计调教play | 丁香六月色婷婷 | 黄色大片久久 | 国产 丝袜 欧美中文 另类 | 欧美91精品久久久久国产性生爱 | 亚洲男人天堂视频 | 久久九九综合 | 五月天国产在线 | 无码人妻精品一区二区蜜桃视频 | 女人脱了内裤趴开腿让男躁 | 日韩精品中文字幕在线播放 | 日本人妻丰满熟妇久久久久久 | 玉丸(双性调教) | 日韩av在线免费看 | 穿扒开跪着折磨屁股视频 | 国产午夜精品一区二区三区嫩草 | jizzjizz在线播放 | 色吊丝av中文字幕 | 二区在线观看 | 亚洲 高清 成人 动漫 | 黄色特级片 | 自拍偷拍精品视频 | 色网站免费 | 午夜在线一区二区三区 | 日韩av看片 | 精品国产欧美一区二区 | 成人黄色片在线观看 | 人人操在线播放 | 高h大肚孕期孕妇play | 高跟鞋肉丝交足91 | 女同av在线播放 | 中文字幕日本在线 | 亚洲欧美另类日韩 | 亚洲二区在线播放视频 | 小箩莉末发育娇小性色xxxx | 日本少妇毛茸茸高潮 | 91av观看 | 少妇熟女视频一区二区三区 | 亚州国产精品 | 亚洲性xx | 内射国产内射夫妻免费频道 | 亚色综合| 亚洲三级a | 青青草中文字幕 | 亚洲人 女学生 打屁股 得到 | www.youjizz.com日本 | 亚洲免费av片 | 在线观看av一区二区 | 黄色午夜网站 | 少妇激情四射 | 国产高清一区 | 99ri在线观看 | 91天堂素人 | 国产乱来视频 | 成人免费片 | 日韩电影一区 | 日美韩一区二区三区 | 91偷拍网| 国产免费黄色网址 | 91极品身材尤物theporn | 狠狠操网 | 亚洲天堂2020 | 国产一区二区观看 | 国产精品国产三级国产三级人妇 | 黄色片子视频 | 精品无码久久久久国产 | 欧美成人小视频 | 国产精品三级电影 | 在线视频二区 | 无码人妻aⅴ一区二区三区玉蒲团 | 五月激情小说 | 理论片大全免费理伦片 | av资源在线播放 | 成年人免费网站在线观看 | 亚洲www色 | 韩日一区二区三区 | 久久免费福利视频 | 男同激情视频 | 高清乱码免费网 | 四虎www| 亚洲国产精品一区二区久久hs | 成人激情在线观看 | 国产乱色精品成人免费视频 | 亚洲红桃视频 | 亚洲成人激情av |