Обязательное свойство в пользовательском элементе управления ASP .NET - PullRequest
4 голосов
/ 28 октября 2011

Я создаю пользовательский веб-элемент управления для моей ASP-страницы, который наследуется от CompositeDataBoundControl. У меня есть общедоступное свойство в определении моего элемента управления, которое требуется , если пользователь не предоставит это свойство в определении элемента управления на странице ASP, оно сломается, и мы получим исключение. Я хочу, чтобы компилятор выдавал предупреждение, подобное тому, когда пользователь забывает предоставить свойство runat элемента управления.

«Проверка (ASP.Net): элемент« asp: Button »отсутствует обязательный атрибут« runat »."

Вот как выглядит мой код:

public class MyControl : CompositeDataBoundControl, IPostBackEventHandler
{
    private string _someString;
    public string SomeString
    {
        get { return _someString; }
        set { _someString = value; }
    }

    // Other Control Properties, Functions, Events, etc.
}

Я хочу, чтобы SomeString было обязательным свойством, и при создании страницы выдает предупреждение компилятора.

Я пытался поместить атрибут Required над свойством, например так:

[Required]
public string SomeString
{
    get { return _someString; }
    set { _someString = value; }
}

но, похоже, это не работает.

Как я могу сгенерировать такое сообщение компилятора?

1 Ответ

0 голосов
/ 11 января 2014

Это довольно просто, при загрузке страницы вы можете проверить, имеет ли свойство какое-то значение или нет. Вы можете проверить это для Пустого или Пустого случая в зависимости от вашего типа собственности. например, если у меня есть это

private string _someString;
    public string SomeString
    {
        get { return _someString; }
        set { _someString = value; }
    }

На событии page_load я проверю, если

if(_someString != null && _someString != "")
{ 
    String message = "Missing someString property";
    isAllPropertySet = false; //This is boolean variable that will decide whether any property is not left un-initialised
}

Все лучшее.

и, наконец,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...