如何在一个控制页面内定义母版页中的标签,而不是在导航到另一个控制页面时丢失它?我知道我可以使用此代码并且它可以工作:
(Master.FindControl("myControl") as Label).Text = "someNewContent";
但是我必须在每个页面上定义它以在标签中保留相同的内容。在整个程序中只有一次更容易/更短的方式来定义这段代码吗?提前谢谢。
答案 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事件中读取它。
希望这能回答你的问题。