仅在一个内容页面中更改母版页中的标签

时间:2013-12-11 15:54:12

标签: c# asp.net label master-pages

如何在一个控制页面内定义母版页中的标签,而不是在导航到另一个控制页面时丢失它?我知道我可以使用此代码并且它可以工作:

        (Master.FindControl("myControl") as Label).Text = "someNewContent";

但是我必须在每个页面上定义它以在标签中保留相同的内容。在整个程序中只有一次更容易/更短的方式来定义这段代码吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

我想我得到了你所要求的要点:

首先,我强烈要在@Page指令下面的内容页面中使用@MasterType指令键入母版页:

<%@ MasterType TypeName="*fully qualified type of your master page*" %>

接下来,在您的母版页上放置一个公共属性,如下所示:

public string MyText
{
  set { this.ViewState["TheText"]; }
}

在您的内容页面中(例如,在Page_Init期间),您可以添加:

this.Master.MyText = "Whatever you want to say!";

然后在Page_Load事件中加载母版页控件文本属性:

protected void Page_Load(object sender, EventArgs e)
{
  this.myControl.Text = Convert.ToString(this.ViewState["TheText"]);
}

这不会从内容页面持续到内容页面,因为每个内容页面都会实例化母版页的新实例。在这种情况下,在Session中放置您想要保留的任何文本,然后在主页Page_Load事件中读取它。

希望这能回答你的问题。