ASP.NET - проверка контроля внутри UserControl - PullRequest
5 голосов
/ 05 ноября 2010

У меня есть элемент управления UserControl оболочки вокруг DropDownList для управления переводом на язык для значений DropDownList.

У меня также есть обязательный валидатор поля, который требуется для внутреннего раскрывающегося списка.

Какя могу выставить этот элемент управления через usercontrol, чтобы разрешить проверку?

В настоящее время я получаю следующую ошибку:

... cannot be validated. at System.Web.UI.WebControls.BaseValidator.CheckControlValidationProperty(String name, String propertyName)
      at System.Web.UI.WebControls.BaseValidator.ControlPropertiesValid()

Редактировать: я сейчас использую ...

[ValidationPropertyAttribute("SelectedValue")]

.... С

public string SelectedValue
{
    get { return cboI18nItems.SelectedValue; }
}

, который теперь работает, если я проверяю свойство IsValid страницы при обратной передаче.

Ответы [ 2 ]

5 голосов
/ 05 ноября 2010

Ваш Validator должен быть внутри вашего UserControl, но доступен со страницы.

или установить ValidationProperty в UserControl

  1. Поместите валидатор в UserControl. Он может получить доступ к идентификатору контроль ввода данных.
  2. Использовать CustomValidator. Не используйте его свойство ControlToValidate. Вместо этого, по вашей собственной оценке функция вы получите доступ к DropDownList через UserControl. Вы, вероятно, сделаете Поле DropDownList Public, поэтому оно может быть видел, как только вы вводите пользовательский контроль возражать против класса этого UserControl.
  3. Возможно использовать атрибут ValidationPropertyAttribute. Вы должны добавить свойство к вашему usercontrol, который возвращает строку значение данных.

Найдено здесь .

1 голос
/ 14 декабря 2012

Я решил эту проблему немного иначе, чем было предложено выше. Вот фрагмент кода, взятый из моего кода:

Protected Sub ValidateCreditCard()
    Dim validators = Page.GetValidators("cc")
    For Each v In validators
        DirectCast(v, BaseValidator).Validate()
    Next
End Sub

Код VB.NET, но его легко понять.

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