У меня есть пара сценариев, которые мне нужно создать:
1) если раскрывающийся список имеет определенное значение, укажите для определенного текстового поля обязательное поле.
2) если в конкретном текстовом поле есть данные, необходимо ввести другое текстовое поле (если поле адреса заполнено, указать город, штат и почтовый индекс)
У меня есть код для вызова из пары CustomValidators, которая выглядит правильно:
<asp:CustomValidator ID="cvtxt_pat_id" runat="server"
OnServerValidate="txt_pat_idValidate" ControlToValidate="txt_pat_id"
ErrorMessage="Text must be 8 or more characters." Display="Dynamic"/>
protected void txt_pat_idValidate(object sender, ServerValidateEventArgs e)
{
if (ddl_addl_pat_info.SelectedValue.ToString() == "2")
{
e.IsValid = (e.Value.Length > 1);
}
else
{
e.IsValid = true;
}
}
<asp:CustomValidator ID="cvtxt_pat_id" runat="server"
OnServerValidate="addresspartsValidate" ControlToValidate="txt_city"
ErrorMessage="Complete address must be entered." Display="Dynamic"/>
protected void addresspartsValidate(object sender, ServerValidateEventArgs e)
{
if (txt_pat_address.Text.Length > 1)
{
e.IsValid = (e.Value.Length > 1);
}
else
{
e.IsValid = true;
}
}
Но, насколько я понимаю, если текстовое поле, которое я тестирую, пустое, оно никогда не проверяется, поэтому оно не запускается, если оно пустое, что затрудняет проверку на наличие обязательного поля. Так ... мысли?
Кроме того, я получаю противоречивые истории о том, нужно ли мне ОБА клиентской и серверной версии моего теста. Возможно, это требовалось в более старой версии, а теперь нет?