国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
模板的使用詳解

http://msdn.microsoft.com/zh-cn/library/wtxbf3hh.aspx

1,創(chuàng)建模板頁

     

1)首先我們先建立一個網(wǎng)站(圖一),

。

2)在此項(xiàng)目上添加一個模板頁,在網(wǎng)站上“右擊鼠標(biāo)”,選擇“添加新相”,找到“模板頁”(圖二),名稱自己定,語言當(dāng)然就不用說了,然后點(diǎn)擊添加就可以了!

3)現(xiàn)在我們再仔細(xì)的看一下這個模板頁到底有什么功能,到底有什么神秘之處!我們雙擊如圖所示的MasterPage.master文件,查看其 原文件,我們首先看到第一行就是“<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" %>”,這句話是模板頁的聲明,如果我們仔細(xì)一點(diǎn)的話就會發(fā)現(xiàn),它的聲明和普通頁面的聲明很相似,主要有一下幾點(diǎn):1、模板頁是以master開始,后綴是“.master”,而普通的頁面是以page開始的,后綴是“.aspx”,再一個很大的區(qū)別就是:在模板頁中存在一個“ContentPlaceHolder”控件,這個控件就是用來填充內(nèi)容頁的地方,而普通的頁面是沒有的!(圖四)我們可以在模板頁的地方添加各種固定的信息如頁面的logo或者是聲明等!現(xiàn)在我們?yōu)檫@個模板頁添加一個內(nèi)容頁,來看一下效果。

                      

具體操作如下:我們在內(nèi)容頁的位置右擊鼠標(biāo),選擇“添加內(nèi)容頁”(圖六)就可以。此時(shí),我們會看到內(nèi)容頁的源碼區(qū),及其簡單,就三句話。

其中“MasterPageFile="~/MasterPage.master"”這句話是定義是模板頁,

再看下一行“<asp:Content ID="Content1" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">

                    </asp:Content>”,

           “ContentPlaceHolderID="ContentPlaceHolder1"”為我們指定了模板頁中的可以添加內(nèi)容頁的ContentPlaceHolder,有時(shí)候我們的模板頁會不只有一個ContentPlaceHolder,我們要根據(jù)自己的需要來選擇!我們選擇“設(shè)計(jì)”模式,來看一下效果,只有內(nèi)容頁的地方允許我們編輯,這就實(shí)現(xiàn)了模板頁的作用!假如我們的內(nèi)容頁也想利用模板頁的內(nèi)容,我們可以點(diǎn)擊ContentPlaceHolder右上角的那個小三角,然后選擇“默認(rèn)為模板頁內(nèi)容就可以了”(圖八)!

在母版頁中,可以添加多個ContentPlaceHolder控件,通過在工具箱的標(biāo)準(zhǔn)欄中選擇ContentPlaceHolder,拖動到母版頁中。在ContentPlaceHolder區(qū)域中,也可以直接輸入內(nèi)容或添加ASP.NET控件,ContentPlaceHolder區(qū)域中的內(nèi)容將作為內(nèi)容頁的默認(rèn)內(nèi)容呈現(xiàn)。

2,使用模板頁

1),選擇網(wǎng)站名稱,并單擊右鍵,選擇“添加新項(xiàng)”命令,在模板列表中選擇“WEB窗體”。在添加新項(xiàng)窗體的右下角有兩個復(fù)選框。確保選中“選擇母版頁”,復(fù)選框。如圖:

2),接下來彈出選擇母版也窗口,選擇你需要的母版也。如圖:

3),保存后,在新建的WEB頁,即內(nèi)容頁。在顯示的時(shí)候會把母版面的內(nèi)容一起以水印淡化的形式顯示出來,而在母版頁中的ContentPlaceHolder控件區(qū)域會被內(nèi)容頁面中的Content控件替換,如圖:

一、在母版頁中編寫后臺代碼,訪問母版頁中的控件:

    與普通的aspx頁面一樣,雙擊按鈕即可編寫母版頁中的代碼

   

二、在內(nèi)空頁面中編寫后臺代碼,訪問內(nèi)容頁面中的控件:

    與普通的aspx頁面一樣,雙擊按鈕即可編寫母版頁中的代碼

   

三、在內(nèi)容頁面中編寫代碼訪問母版頁中的控件:

    在內(nèi)容頁面中有個Master對象,它是MasterPage類型,它代表當(dāng)前內(nèi)容頁面的母版頁。通過這個對象的FindControl方法,我們可以找到母版面中的控件,這樣就可以在內(nèi)容頁面中操作母版頁中的控件了。

        TextBox txt = (TextBox)((MasterPage)Master).FindControl("txtMaster");

        txt.Text = this.txtContent1.Text; ;

       

四、在內(nèi)容頁面中編寫代碼訪問母版頁中的屬性和方法

    仍可能通過Master對象進(jìn)行訪問,只不過在這里要把Master對象轉(zhuǎn)換成具體的母版頁類型,然后再調(diào)用母版頁中的屬性和方不法。

    這里要說明的是:母版頁中要被內(nèi)容頁面調(diào)用的屬性和方法必須是Public修改的。否則無法調(diào)到。

        假設(shè)母版頁中有下面的屬性和方法:

        public string TextValue

        {

            get

            {

                return this.txtMaster.Text;

            }

            set

            {

                this.txtMaster.Text = value;

            }

        }

        public void show(string str)

        {

            txtMaster.Text = str;

        }

       在內(nèi)容頁面中可以通過下代的代碼來實(shí)現(xiàn)對母版頁中方法的調(diào)用:

        ((MasterPage_MP)Master).show(this.txtContent1.Text);

        ((MasterPage_MP)Master).TextValue = this.txtContent1.Text;

       

五、在母版頁中訪問內(nèi)容頁面的控件:

    在母版頁中可以通過在ContentPlaceHolder控件中調(diào)用FindControl方法來取得控件,然后對控件進(jìn)行操作。

    ((TextBox)this.ContentPlaceHolder1.FindControl("txtContent1")).Text = this.txtMaster.Text;

   

六、在母版頁中訪問內(nèi)容頁面中的方法和屬性:

    在母版頁中調(diào)用子頁面中的屬性和方法有點(diǎn)難度,因?yàn)槲覀儫o法像上一步中那樣通過FindControl來找到方法和屬性。

    于是我們想到在母版面的聲明指示符中加入下面的代碼:

        <%@ Reference Page="~/MasterPage/Show1.aspx" %>

    在運(yùn)行的時(shí)候回發(fā)現(xiàn)有錯誤,錯誤的內(nèi)容是“無法實(shí)現(xiàn)循環(huán)引用”。這是因?yàn)槟J(rèn)在子頁面中引用了母版頁,你也就不能再在母版頁中引用子頁面了。

    我在網(wǎng)上也沒找到更好的解決方法,但這使我們想起C#是的“反射”,它可以使我們動態(tài)獲取頁面對象,并且可以調(diào)用它的屬性和方法。

    代碼如下:

        Type t = this.ContentPlaceHolder1.Page.GetType();

        PropertyInfo pi = t.GetProperty("ContentValue"); //獲取ContentValue屬性

        pi.SetValue(this.ContentPlaceHolder1.Page,this.txtMaster.Text,null);    //給屬性賦值

       

        MethodInfo mi = t.GetMethod("SetValue"); //獲取SetValue()方法

        object[] os = new object[1];   //建造輸入?yún)?shù)

        os[0] = txtMaster.Text;

        mi.Invoke(this.ContentPlaceHolder1.Page, os);    //調(diào)用SetValue方法

       

七、在有多個內(nèi)容頁面使用母版面的情況下,在母版頁中根據(jù)不同的內(nèi)容頁面實(shí)現(xiàn)不同的操作

    在母版頁中可以加入多個不同的內(nèi)容頁面,但在設(shè)計(jì)期間,我們無法知道當(dāng)前運(yùn)行的是哪個內(nèi)容頁面。所以只能通過分支判斷當(dāng)前運(yùn)行的是哪個子頁面,來執(zhí)行不同的操作。這里也用到了反射的知識。

    代碼如下:

        string s = this.ContentPlaceHolder1.Page.GetType().ToString();   //取出內(nèi)容頁面的類型名稱

        if (s == "ASP.default17_aspx")   //根據(jù)不同的內(nèi)容頁面類型執(zhí)行不同的操作

        {

            ((TextBox)this.ContentPlaceHolder1.FindControl("TextBox2")).Text = "MastPage";

        }

        else if (s == "ASP.default18_aspx")

        {

            ((TextBox)this.ContentPlaceHolder1.FindControl("TextBox2")).Text = "Hello MastPage";

        }

八、在母版面與內(nèi)容頁面中JS代碼的操作

    在母版頁或內(nèi)容頁面中的控件運(yùn)行之后會自動生成ID,如文本框的ID是txtContent1,在運(yùn)行之后ID會自動變?yōu)閏tl00_ContentPlaceHolder2_txtContent1,name屬性會變?yōu)閏tl00$ContentPlaceHolder2$txtContent1。

    在JS代碼中,我們用document.getElementById()方法,根據(jù)id取得控件對象的時(shí)候,應(yīng)當(dāng)使用ctl00_ContentPlaceHolder2_txtContent1這個ID名,否則會產(chǎn)生“未找到對象”的異常。

   (車延祿)

母版頁運(yùn)行機(jī)制

母版頁僅僅是一個頁面模板,單獨(dú)的母版頁是不能被用戶所訪問的。單獨(dú)的內(nèi)容頁也不能夠使用。母版頁和內(nèi)容頁有著嚴(yán)格對應(yīng)關(guān)系。母版頁中包含多少個ContentPlaceHolder控件,那么內(nèi)容頁中也必須設(shè)置與其相對應(yīng)的Content控件。當(dāng)客戶端瀏覽器向服務(wù)器發(fā)出請求,要求瀏覽某個內(nèi)容頁面時(shí),ASP.NET引擎將同時(shí)執(zhí)行內(nèi)容頁和母版頁的代碼,并將最終結(jié)果發(fā)送給客戶端瀏覽器。

母版頁和內(nèi)容頁的運(yùn)行過程可以概括為以下5個步驟。

(1)用戶通過鍵入內(nèi)容頁的URL來請求某頁。

(2)獲取內(nèi)容頁后,讀取@ Page指令。如果該指令引用一個母版頁,則也讀取該母版頁。如果是第一次請求這兩個頁,則兩個頁都要進(jìn)行編譯。

(3)母版頁合并到內(nèi)容頁的控件樹中。

(4)各個Content控件的內(nèi)容合并到母版頁中相應(yīng)的ContentPlaceHolder控件中。

(5)呈現(xiàn)得到結(jié)果頁。

母版頁和內(nèi)容頁事件順序

(1)母版頁中控件Init事件;

(2)內(nèi)容頁中Content控件Init事件;

(3)母版頁Init事件;

(4)內(nèi)容頁Init事件;

(5)內(nèi)容頁Load事件;

(6)母版頁Load事件;

(7)內(nèi)容頁中Content控件Load事件;

(8)內(nèi)容頁P(yáng)reRender事件;

(9)母版頁P(yáng)reRender事件;

(10)母版頁控件PreRender事件。

(11)內(nèi)容頁中Content控件PreRender事件。

使用母版頁的優(yōu)點(diǎn):

(1)有利于站點(diǎn)修改和維護(hù),降低開發(fā)人員的工作強(qiáng)度

(2)有利于實(shí)現(xiàn)頁面布局

(3)提供一種便于利用的對象模型

http://blog.csdn.net/steveyang/archive/2008/09/16/2932490.aspx Dreamweaver模板的使用

http://jcobra.blog.163.com/blog/static/470493200966287962/

 

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
[轉(zhuǎn)]asp.net 母版頁使用詳解 - 墨藝的日志 - 網(wǎng)易博客
ASP.NET 2.0數(shù)據(jù)教程:給站點(diǎn)添加aspx頁面
Asp.Ne tMasterPage技術(shù)-<asp:Content>
ASP.NET MasterPage 中圖片路徑的解決辦法!
[jQuery]使用jQuery.Validate進(jìn)行客戶端驗(yàn)證(初級篇)——不使用微軟驗(yàn)...
asp.net 2.0下嵌套masterpage頁的可視化編輯,jsp,asp,sql,php,mysql,server,apache,iis,tomcat,oracle,java,linux,dns
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服