我有一个继承System.Web.UI.UserControl的UserControlBase类,我的用户控件继承了UserControlBase类。 UserControlBase具有一些在所有用户控件中使用的常用函数。
我想将错误显示功能也放到UserControlBase中,这样我就不必在所有用户控件中声明和管理它。错误将显示在usercontrol中的某个标签中。问题是如何在函数中访问UserControlBase中usercontrol中的标签?我不想将标签作为参数传递。
答案 0 :(得分:2)
在UserControl Base中,仅显示标签的文本值:
public abstract class UserControlBase : System.Web.UI.UserControl
{
private Label ErrorLabel { get; set; }
protected string ErrorMessage
{
get { return ErrorLabel.Text; }
set { ErrorLabel.Text = value; }
}
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
ErrorLabel = new Label();
Controls.Add(ErrorLabel);
}
//... Other functions
}
在继承此内容的用户控件中:
public partial class WebUserControl1 : UserControlBase
{
protected void Page_Load(object sender, EventArgs e)
{
try
{
}
catch (Exception)
{
ErrorMessage = "Error"; //Or whatever
}
}
}