母版页调用内容页的方法的简单实现
??????在內容頁中如何調用母版頁上的內容大家想必都已經知道,這里我也不再啰嗦。我想介紹給大家的方法是如何在母版頁中如何調用內容頁的方法。
???????母版頁給我們帶來了很多方便性,但也帶來了一個問題:在設計母版頁的時候,總會碰到需要在母版頁中調用內容頁的方法,但此時內容頁尚未設計,如何調用呢?下面就讓我用一個實例給大家講解一下:
??????母版頁:MasterPage.master的頁面代碼如下:
<body>
??? <form id="form1" runat="server">
??? <table>
??????? <tr>
??????????? <td>
??????????????? <asp:Button ID="CallContentMethod" runat="server" OnClick="CallContentMethod_Click"
??????????????????? Text="調用內容頁方法" />
??????????????? <asp:Label ID="welcomeMessage" runat="server" Text="這里將顯示內容頁的歡迎信息"></asp:Label></td>
??????? </tr>
??????? <tr>
??????????? <td>
??????????????? <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">
??????????????? </asp:contentplaceholder>
??????????? </td>
??????? </tr>
??? </table>
??? </form>
</body>
其中有一個按鈕和一個文本,其中的文本用來顯示內容頁的歡迎信息,按鈕用來調用內容頁的方法,但此時內容頁并不存在,那么按鈕的單擊事件代碼如何寫呢?
??????這里我們需要引入一個頁面基類的概念,想必大家都清楚;aspx頁面只要求后臺類是繼承此Page類即可。所以我們先添加一個繼承自Page的頁面基類BasePage,然后讓頁面繼承自我們BasePage并重寫相關方法,利用運行時的動態性來解決此問題。相關代碼如下:
BasePage.cs:
public class BasePage :Page
{
??? /// <summary>
??? /// 輸出每個內容頁的歡迎信息,內容頁繼承此類并重寫此方法即可。此方法會由母版頁自動調用
??? /// </summary>
??? public virtual string SayHello()
??? {
??????? return "這是頁面基類返回的歡迎信息!";
??? }
}
母版頁的后臺代碼如下:
??? BasePage currentPage = null;
??? protected void Page_Load(object sender, EventArgs e)
??? {
??????? currentPage = Page as BasePage;
??? }
??? protected void CallContentMethod_Click(object sender, EventArgs e)
??? {
??????? if (currentPage != null)
??????? {
??????????? welcomeMessage.Text = currentPage.SayHello();
??????? }
??? }
此處母版頁中定義一個成員變量指向BasePage,在PageLoad中將實際運行的頁面進行轉型,這樣在按鈕的單擊事件中就可以調用BasePage定義的SayHello方法了。又由于此方法是虛方法,在運行時綁定具體方法,即可實現我們的要求。
下面是內容頁的代碼:
Default.aspx.cs:
//注意類一定要繼承自自定義的基類,否則母版頁中轉型會失敗
public partial class Template_Default : BasePage
//重寫歡迎信息方法
??? public override string SayHello()
??? {
??????? return "這是來自內容頁的歡迎信息!";
??? }
。
通過以上的步驟,我們就可以輕松實現在母版頁中調用內容頁的方法。如果想自動調用,只需要在母版頁的Page_Load方法中轉型后直接調用相關方法即可。
如果大家有更好的方法歡迎一起討論!!!
轉載于:https://www.cnblogs.com/chenql/archive/2007/02/03/638614.html
總結
以上是生活随笔為你收集整理的母版页调用内容页的方法的简单实现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这次不裁了!荣耀90系列主镜确认:原生2
- 下一篇: 萤石首款双摄版智能视频锁发布:2899