Как получить доступ к элементу управления формы метки в родительском классе? - PullRequest
0 голосов
/ 24 мая 2010

У меня есть класс UserControlBase, который наследует System.Web.UI.UserControl, а мои пользовательские элементы управления наследуют класс UserControlBase.UserControlBase имеет некоторые общие функции, которые используются во всех пользовательских элементах управления.

Я хочу также добавить функцию отображения ошибок в UserControlBase, чтобы мне не приходилось объявлять и управлять ею во всех пользовательских элементах управления.Ошибка будет отображаться в некоторой метке в usercontrol.Вопрос в том, как получить доступ к метке, которая находится в usercontrol в UserControlBase в функции?Я не хочу передавать ярлык в качестве аргумента.

1 Ответ

2 голосов
/ 24 мая 2010

В вашей базе UserControl выставьте только текстовое значение метки:

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

        }

    }

}
...