1 通過findcontrol找控制項id
需要在此事件中~因為page_load中時是先內容頁載入然後才是母版頁載入
protected void page_loadcomplete(object sender, eventargs e)
}2 通過強引用
<%@ page language="c#" masterpagefile="~/masterpage.master" autoeventwireup="true" codefile="default2.aspx.cs" inherits="default2" title="untitled page" %>
<%@ mastertype virtualpath="~/masterpage.master" %>
然後可以在母版頁中定義公共屬性或方法
public string getusername()
在內容頁中呼叫
label1.text = "歡迎光臨" + master.getusername();
一、使用findcontrol方法獲取母版頁控制項的引用
利用內容頁page物件的master公共屬性,我們可以實現對關聯母版頁的引用。進而使用母版頁的findcontrol方法來實現對母版頁控制項的訪問。
母版頁masterpage.master:
< title>母版頁< /title>
< /head>
< body>
< form id="form1" runat="server">
< asp:label runat="server" id="masterlabel">母版頁的內容< /asp:label>
< div>
< asp:contentplaceholder id="contentplaceholder1" runat="server">
< /asp:contentplaceholder>
< /div>
< /form>
< /body>
< /html>
內容頁content1.aspx:
< %@ page language="c#" masterpagefile="~/masterpage1.master" autoeventwireup="true" codefile="content1.aspx.cs" inherits="content1" title="untitled page" %>
< script runat="server">
void page_loadcomplete(object sender, eventargs e)
< /script>
< asp:content id="content1" contentplaceholderid="contentplaceholder1" runat="server">
< asp:label id="contentlabel" runat="server">這裡將顯示母版頁masterlabel控制項的內容。< /asp:label>
< /asp:content>
其中,「page_loadcomplete」是內容頁面載入完成時觸發的乙個事件。
執行結果:
二、使用mastertype指令獲取母版頁控制項的引用
相對於上面的findcontrol方法而言,mastertype顯得很直接。通過使用mastertype,可以建立與母版頁的強型別引用。
將findcontrol方法例子中的masterpage.master更改如下:
< %@ master language="c#" autoeventwireup="true" codefile="masterpage1.master.cs" inherits="masterpage1" %>
< script runat="server">
public label masterpagelabel//注意:將母版頁label控制項強型別化,方便內容頁訪問。對母版頁屬性的訪問也使用該方法。
< title>母版頁< /title>
< /head>
< body>
< form id="form1" runat="server">
< asp:label runat="server" id="masterlabel">母版頁的內容< /asp:label>
< div>
< asp:contentplaceholder id="contentplaceholder1" runat="server">
< /asp:contentplaceholder>
< /div>
< /form>
< /body>
< /html>
將findcontrol方法例子中的content1.aspx更改如下:
< %@ page language="c#" masterpagefile="~/masterpage1.master" autoeventwireup="true" codefile="content1.aspx.cs" inherits="content1" title="untitled page" %>
< %@ mastertype virtualpath="~/masterpage1.master" %>
< script runat="server">
new void page_load(object sender, eventargs e)
< /script>
< asp:content id="content1" contentplaceholderid="contentplaceholder1" runat="server">
< asp:label id="contentlabel" runat="server">這裡將顯示母版頁masterlabel控制項的內容。< /asp:label>
< /asp:content>
巢狀母版頁中的控制項訪問
巢狀母版頁中的控制項訪問 左直拳巢狀母版頁中的控制項訪問很彆扭。如果乙個內容頁對應乙個沒有巢狀的母版頁,訪問這個母版頁上的控制項眾所周知 類似 button page.master.findcontrol button1 可是這個母版頁如果又巢狀在另乙個母版頁裡面,上述語句包你什麼東西都訪問不到。假...
巢狀母版頁中的控制項訪問
巢狀母版頁中的控制項訪問 左直拳巢狀母版頁中的控制項訪問很彆扭。如果乙個內容頁對應乙個沒有巢狀的母版頁,訪問這個母版頁上的控制項眾所周知 類似 button page.master.findcontrol button1 可是這個母版頁如果又巢狀在另乙個母版頁裡面,上述語句包你什麼東西都訪問不到。假...
母版頁訪問內容頁
內容頁訪問母版頁,理所當然,是人都知。但母版頁訪問內容頁呢?用委託。實現 1 母版頁宣告和定義乙個委託 2 內容頁裡將具體實現方法附加到委託上 3 母版頁檢查該委託是否為空,非空的話就執行該委託 母版頁 public delegate void dlgshowcontent string conte...