Проверка свойства пользовательской веб-части, заданного пользовательской частью инструментов?

sharepoint.stackexchange https://sharepoint.stackexchange.com//questions/59874

  •  10-12-2019
  •  | 
  •  

Вопрос

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

Мне интересно, где мне следует проверять значения.

Я вижу два места, где я могу проверить.

Либо в самом свойстве:

    private int? m_MaxNumberOfSomething;

    [Browsable(false)]
    [Category(Constants.WebPartsExtendedPropertiesCategoryName)]
    [DefaultValue(5)]
    [WebPartStorage(Storage.Personal)]
    public int? MaxNumberOfSomething
    {
        get
        {
            return m_MaxNumberOfSomething;
        }
        set
        {
            if (value.HasValue && value < 1) throw new WebPartPageUserException("At least one !");
            m_MaxNumberOfSomething = value;
        }
    }

Или примените изменения метода Toolpart:

    public override void ApplyChanges()
    {
        int maxNumberOfSomething;
        if (!int.TryParse(txtMaxNumberOfSomething.Text, out maxNumberOfSomething))
        {
            throw new WebPartPageUserException("At least one");
        }
        ParentWebPart.MaxNumberOfSomething = maxNumberOfSomething;
    }

Есть ли какой-нибудь 3-й способ?

Как правильно добавить такую ​​проверку?

Это было полезно?

Решение

Я бы сделал это в setтер.

Поскольку вы в любом случае генерируете исключение, будет чище не позволять пользователю set ценность на первом месте.Если бы вы выполняли проверку только в ApplyChanges метод, другой код мог бы работать с уже неправильно установленным значением.

Подтвердить в set, поэтому пользователю даже не разрешено записывать недопустимые данные в вашу переменную. Вот сообщение в блоге, показывающее именно этот метод, но в любом случае вы делаете это правильно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top