如何在父类中访问标签形式的用户控件?

时间:2010-05-24 12:07:31

标签: asp.net asp.net-2.0 c#-2.0

我有一个继承System.Web.UI.UserControl的UserControlBase类,我的用户控件继承了UserControlBase类。 UserControlBase具有一些在所有用户控件中使用的常用函数。

我想将错误显示功能也放到UserControlBase中,这样我就不必在所有用户控件中声明和管理它。错误将显示在usercontrol中的某个标签中。问题是如何在函数中访问UserControlBase中usercontrol中的标签?我不想将标签作为参数传递。

1 个答案:

答案 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

        }

    }

}