首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过母版页访问内容页变量

问通过母版页访问内容页变量
EN

Stack Overflow用户
提问于 2013-08-05 16:32:37
回答 1查看 5.2K关注 0票数 4

我知道在ASP.net中,我们可以通过内容页访问母版页变量,但是我们是否可以通过母版页访问内容页变量?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-08-05 17:46:47

是的你可以。您必须实现一个基类,并且内容类应该从该基类派生出来。

编辑:发布标记和更改代码以获得更清晰的示例

我已经创建了一个继承了System.Web.UI.Page的基页面,然后让内容页继承它。我的漏电:

代码语言:javascript
复制
namespace WebApplication2
{
    public class BasePage : System.Web.UI.Page
    {
        public BasePage() { }

        public virtual string TextValue()
        {
            return "";
        }

    }
}

以下是我的内容页面标记:

代码语言:javascript
复制
<%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._Default" %>


<asp:Content runat="server" ID="BodyContent" ContentPlaceHolderID="MainContent">
    <asp:Label ID="lblContentText" Text="Contentpage TextValue:" runat="server"></asp:Label>
    <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</asp:Content>

内容页代码:

代码语言:javascript
复制
namespace WebApplication2
{
    public partial class _Default : BasePage
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        public override string TextValue()
        {
            return TextBox1.Text;
        }
    }
}

我的主页标记:

代码语言:javascript
复制
<%@ Master Language="C#" AutoEventWireup="true" CodeBehind="Site.master.cs" Inherits="WebApplication2.SiteMaster" %>

<!DOCTYPE html>
<html lang="en">
<head runat="server">
    <meta charset="utf-8" />
    <title><%: Page.Title %> - My ASP.NET Application</title>  
    <asp:ContentPlaceHolder runat="server" ID="HeadContent" />
</head>
<body>
    <form runat="server">    
    <header> </header>
    <div id="body">
        <asp:Label ID="lblText" runat ="server" Text="Masterpage Text :" />
        <asp:TextBox ID="txtMaster" runat="server"></asp:TextBox>
        <asp:Button ID="Button1" runat="server" Text="Click to read content page TextValue " OnClick="Button1_Click" />
        <asp:ContentPlaceHolder runat="server" ID="MainContent" />
    </div>
    <footer>
    </footer>
    </form>
</body>
</html>

以及后面的母版代码的实现:

代码语言:javascript
复制
namespace WebApplication2
{
    public partial class SiteMaster : MasterPage
    {
        BasePage Currentpage = null;
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            Currentpage = this.Page as BasePage;
            if (Currentpage != null)
            {
                txtMaster.Text = Currentpage.TextValue();
            }
        }
    }
}

如果您看到像BasePase这样的错误无法识别,请确保它使用相同的名称空间(即WebApplication2),或者将名称空间添加到实现页面(即使用WebApplication2;)。

希望能帮上忙!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18063194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档