В вашем случае, в качестве альтернативы использованию CustomValidator, вы могли бы явно изменить, активируются ли обязательные валидаторы полей с помощью функции JavaScript ValidatorEnable ().
// disable validation control
ValidatorEnable(RequiredFieldValidator1, false);
Затем вы можете написать собственную логикув JavaScript, чтобы определить случай, когда каждый элемент управления проверкой включен или отключен, и связать его с одним из (на стороне клиента) событий текстовых полей (onblur, onchange, onkeyup и т. д.).
Затем на стороне сервера вы можете написать аналогичную логику, чтобы сделать то же самое, установив свойство «Включено» и поместить эту логику в событие нажатия кнопки, прежде чем проверять состояние IsValid.
Если все, что вы делаете, это условно определяете, когда что-то требуется, то изменение включенного состояния - ваш лучший выбор.Что именно можно сделать, описано в Проверка ASP.NET в глубину .