Возможно ли запустить CustomValidator до RequiredFieldValidators?

У меня есть текстовое поле, в котором пользователь вводит номер задания. Я проверяю, существует ли этот номер в базе данных, используя CustomValidator на стороне сервера. Я хочу, чтобы этот CustomValidator вызывался перед чем-либо еще на странице. Прямо сейчас он запускает CustomValidator только в том случае, если все RequiredFieldValidators проверены на значение true. И проверка происходит по нажатию кнопки.

Можно ли проверить CustomValidator перед другими RequiredFieldValidator? Кроме того, есть ли способ, которым, как только номер задания вводится в текстовое поле, мы можем проверить номер и сразу же отобразить ошибку, если он недействителен, а не ждать, пока нажмете кнопку?


person Rashmi Shivanna    schedule 23.01.2018    source источник
comment
Скорее всего, requiredFieldValidator работает (также) на стороне клиента (javascript), и если он не заполнен, он останавливает обратную передачу, т. е. ваш CustomValidator на стороне сервера вообще не запускается. возможно, вам также потребуется выполнить некоторую проверку на стороне клиента.   -  person Gian Paolo    schedule 23.01.2018


Ответы (1)


Если вы используете CustomValidator, установите ValidateEmptyText в значение true и добавьте код в свой метод проверки, чтобы проверить, заполнено ли значение. Тогда вам вообще не нужен RequiredFieldValidator. Просто убедитесь, что у вас есть функция JavaScript для проверки на стороне клиента, и установите ClientValidationFunction.

Чтобы инициировать проверку в любое время, вы можете использовать метод, описанный здесь (хотя я никогда его не пробовал): http://fczaja.blogspot.ca/2009/07/aspnet-how-to-trigger-client-side.html

function Validate()
{
    // Get the specific validator element
    var validator = document.getElementById('RequiredFieldValidator1');

    // Validate chosen validator
    ValidatorValidate(validator);

    // Update validation summary for chosen validation group
    ValidatorUpdateIsValid();
    ValidationSummaryOnSubmit(validationGroup);    
}

Затем вы можете использовать это в событии keypress текстового поля. .

person Gabriel Luci    schedule 23.01.2018