我有一个主页面,其中包含状态消息的标签。我需要从不同的.aspx页面设置状态文本。如何从内容页面做到这一点?
public partial class Site : System.Web.UI.MasterPage { public string StatusNachricht { get { return lblStatus.Text; } set { lblStatus.Text = value; } } protected void Page_Load(object sender,EventArgs e) { } }
我试过这个,但没有成功使其工作:
public partial class DatenAendern : System.Web.UI.Page { var master = Master as Site; protected void Page_Load(object sender,EventArgs e) { if (master != null) { master.setStatusLabel(""); } } protected void grdBenutzer_RowCommand(object sender,GridViewCommandEventArgs e) { try { //some code if (master != null) { master.setStatusLabel("Passwort erfolgreich geändert."); } } catch (Exception ex) { if (master != null) { master.setStatusLabel("Passwort konnte nicht geändert werden!"); } } } } }
解决方法
在MasterPage.cs文件中添加Label的属性,如下所示:
public string ErrorMessage { get { return lblMessage.Text; } set { lblMessage.Text = value; } }
在您的aspx页面上,就在Page Directive下面添加:
<%@ Page Title="" Language="C#" MasterPageFile="Master Path Name"..... %> <%@ MasterType VirtualPath="Master Path Name" %> // Add this
在你的codebehind(aspx.cs)页面,你可以很容易地访问标签属性,并根据需要设置其文本。喜欢这个:
this.Master.ErrorMessage = "Your Error Message here";