У меня проблемы с использованием элемента управления CustomValidation, я хочу проверить, меньше ли год, введенный в текстовом поле даты рождения, год выпуска, выбранный из раскрывающегося списка, на 20 лет. Я думаю, что использование ClientValidationFunction намного лучше, когда я пытался его использовать:
<asp:CustomValidator ID="BirthYearCustomValidator" runat="server" ControlToValidate="ddlGraduationYear" ErrorMessage="Enter a valid graduation year." SetFocusOnError="true" ValidationGroup="SaveEducationStep" Display="Dynamic" ClientValidationFunction="GraduationYearValidation"></asp:CustomValidator>
вот сценарий
<script type="text/javascript">
function GraduationYearValidation(sender, args) {
var brithYear = parseInt(new Date(document.getElementById('<%=txtBirthDate.ClientID%>').value).getFullYear());
var gradeYear = parseInt(document.getElementById('<%=ddlGraduationYear.ClientID%>').options[document.getElementById('<%=ddlGraduationYear.ClientID%>').selectedIndex].text);
if ((brithYear - gradeYear) < 20) {
return args.IsValid = true;
}
else {
return args.IsValid = false;
}
}
I get those errors: document.getElementById(...) is null and GraduationYearValidation is not defined.
Итак, я попытался сделать это на стороне сервера:
<asp:CustomValidator ID="BirthYearCustomValidator" runat="server" ControlToValidate="ddlGraduationYear" ErrorMessage="enter a valid graduation year." SetFocusOnError="true" ValidationGroup="SaveEducationStep" Display="Dynamic" OnServerValidate="BirthYearCustomValidator_ServerValidate"></asp:CustomValidator>
код позади:
protected void BirthYearCustomValidator_ServerValidate(object source, ServerValidateEventArgs args)
{
int brithYear = Convert.ToDateTime(txtBirthDate.Text).Year;
int gradeYear = Convert.ToInt32(ddlGraduationYear.SelectedValue);
if ((gradeYear - brithYear) < 20)
{
args.IsValid = false;
}
else
{
args.IsValid = true;
}
}
это не работает, и я искал причину, по которой я обнаружил, что это может быть потому, что мне нужно написать Page.Validate("SaveEducationStep");
и проверить, есть ли Page.IsValid
перед сохранением, но это все еще не работает со мной, любые предложения по обоим сценариям будут оценены. благодаря.
asp:CompareValidator
- person Arshad   schedule 18.03.2014ValueToCompare
при установке его с помощью кода позади должна быть строка, и мне нужно сравнить целые числа? - person user3146172   schedule 18.03.2014