JavaScript справиться с этим не очень сложно.
Учитывая следующие элементы управления ASP:
<asp:TextBox ID="txtSubject" runat="server" />
<asp:CheckBox ID="chkSubjectRequired" runat="server" OnClick="updateValidator();" />
<asp:RequiredFieldValidator ID="rfvSubject" ControlToValidate="txtSubject" ErrorMessage="You must enter a subject." runat="server" />
Добавьте следующую функцию JavaScript:
<script language="javascript" type="text/javascript">
function updateValidator() {
var enableValidator = !event.srcElement.status;
var rfvSubject = document.getElementById('rfvSubject');
ValidatorEnable(rfvSubject, enableValidator);
}
</script>
Это все, что нужно сделать. Вы также захотите добавить следующий код в событие загрузки страницы, чтобы, если у пользователя отключен JavaScript, ваш обязательный валидатор поля по-прежнему был включен или выключен правильно:
rfvSubject.Enabled = chkSubjectRequired.Checked