2009-12-29 4 views

ответ

0

В основном вам нужно указать свою пользовательскую логику, и если все пройдет удовлетворительно, вы должны установить args.IsValid = true; в противном случае, вы должны установить ее на false. Если ошибка проверки не появится, появится сообщение ErrorMessage.

Основной план выглядит следующим образом:

protected void CustomServerValidate(object sender, ServerValidateEventArgs args) 
{ 
    if (/* custom logic */) 
    { 
     args.IsValid = false; // failed validation 
    } 
    else 
    { 
     args.IsValid = true; // passed validation 
    } 
} 

Например, данные радиокнопки r1 и r2 вы могли бы иметь логику, как это обеспечить один из них выбран:

protected void CustomServerValidate(object sender, ServerValidateEventArgs args) 
{ 
    if (!r1.Checked && !r2.Checked) 
    { 
     args.IsValid = false; 
    } 
    else 
    { 
     args.IsValid = true; 
    } 
} 

выше может быть назначено непосредственно в одной строке, но для большей ясности. В качестве другого примера у вас может быть кнопка «Другой» с ассоциированным «Если вы выбрали другое, объясните:» текстовое поле. Вы можете проверить, выбрано ли другое радио, затем проверить текстовое поле и т. Д.

+0

Какова будет пользовательская логика, если она будет проверять пользовательский элемент управления, скажем, с идентификатором «dpCustomControl1»? – Sophie

+0

@ Софи: это зависит от того, что вы хотите проверить с помощью элемента управления dpCustomControl1. Возможно, он предоставляет свойства, которые вы хотите проверить для определенных значений, и в зависимости от этих значений вы должны соответствующим образом установить значение args.IsValid. –

+0

ОК приветствует, что работает. Но когда проверка является ложной, сообщение об ошибке не отображается, хотя я упоминал об этом в теге CustomValidator. Почему так? – Sophie

0

Просто укажите свойство IsValid аргумента события, чтобы установить, была ли проверка успешной или нет.

Я не знаю, можете ли вы напрямую ссылаться на RadioButtonList с помощью CustomValidator; однако то, что я сделал, - установить ControlToValidate на текстовое поле или другой допустимый элемент управления, и просто заставить этот CustomValidator проверить RadioButtonList; он по-прежнему работает таким образом и отображается правильно, когда ошибочно.

HTH.

Смежные вопросы