Элемент управления CustomValidator проверяет значение с помощью пользовательской функции.
Default.aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
-
<
meta
charset
=
"utf-8"
/>
-
<
title
></
title
>
-
<
style
>
-
td {
-
padding: 5px;
-
}
-
.b {
-
text-align: right;
-
}
-
.c {
-
text-align: center;
-
}
-
</
style
>
-
<
script
>
-
/*source - span, в который выводиться сообщение об ошибке*/
-
/*arguments - дополнительные параметры*/
-
/*Value - значение поля ввода*/
-
/*IsValid - корректность введенных данных в поле ввода*/
-
function funValidation(source, arguments) {
-
if(arguments.Value % 2 == 0) {
-
arguments.IsValid = true;
-
}
-
else {
-
arguments.IsValid = false;
-
source.innerHTML = "Это не четное число";
-
}
-
}
-
</
script
>
</
head
>
<
body
>
-
<
form
id
=
"form1"
runat
=
"server"
>
-
<
div
>
-
<
table
>
-
<
tr
>
-
<
td
>
-
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text
=
"Введите чётное число"
></
asp:Label
>
-
</
td
>
-
<
td
>
-
<
asp:TextBox
ID
=
"TextBox1"
runat
=
"server"
></
asp:TextBox
>
-
</
td
>
-
<
td
>
-
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator1"
runat
=
"server"
ErrorMessage
=
"RequiredFieldValidator"
ControlToValidate
=
"TextBox1"
ForeColor
=
"Red"
>Заполните поле</
asp:RequiredFieldValidator
>
-
</
td
>
-
<
td
>
-
<
asp:CustomValidator
ID
=
"CustomValidator1"
runat
=
"server"
ErrorMessage
=
"CustomValidator"
ControlToValidate
=
"TextBox1"
ClientValidationFunction
=
"funValidation"
ForeColor
=
"Red"
OnServerValidate
=
"CustomValidator1_ServerValidate"
></
asp:CustomValidator
>
-
</
td
>
-
</
tr
>
-
<
tr
>
-
<
td
>
-
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"OK"
OnClick
=
"Button1_Click"
/>
-
</
td
>
-
<
td
></
td
>
-
<
td
></
td
>
-
<
td
></
td
>
-
</
tr
>
-
</
table
>
-
<
br
/>
-
<
br
/>
-
<
asp:Label
ID
=
"Label2"
runat
=
"server"
Text
=
""
></
asp:Label
>
-
</
div
>
-
</
form
>
</
body
>
</
html
>
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<
html
xmlns
=
"http://www.w3.org/1999/xhtml"
>
<
head
runat
=
"server"
>
<
meta
charset
=
"utf-8"
/>
<
title
></
title
>
<
style
>
td {
padding: 5px;
}
.b {
text-align: right;
}
.c {
text-align: center;
}
</
style
>
<
script
>
/*source - span, в который выводиться сообщение об ошибке*/
/*arguments - дополнительные параметры*/
/*Value - значение поля ввода*/
/*IsValid - корректность введенных данных в поле ввода*/
function funValidation(source, arguments) {
if(arguments.Value % 2 == 0) {
arguments.IsValid = true;
}
else {
arguments.IsValid = false;
source.innerHTML = "Это не четное число";
}
}
</
script
>
</
head
>
<
body
>
<
form
id
=
"form1"
runat
=
"server"
>
<
div
>
<
table
>
<
tr
>
<
td
>
<
asp:Label
ID
=
"Label1"
runat
=
"server"
Text
=
"Введите чётное число"
></
asp:Label
>
</
td
>
<
td
>
<
asp:TextBox
ID
=
"TextBox1"
runat
=
"server"
></
asp:TextBox
>
</
td
>
<
td
>
<
asp:RequiredFieldValidator
ID
=
"RequiredFieldValidator1"
runat
=
"server"
ErrorMessage
=
"RequiredFieldValidator"
ControlToValidate
=
"TextBox1"
ForeColor
=
"Red"
>Заполните поле</
asp:RequiredFieldValidator
>
</
td
>
<
td
>
<
asp:CustomValidator
ID
=
"CustomValidator1"
runat
=
"server"
ErrorMessage
=
"CustomValidator"
ControlToValidate
=
"TextBox1"
ClientValidationFunction
=
"funValidation"
ForeColor
=
"Red"
OnServerValidate
=
"CustomValidator1_ServerValidate"
></
asp:CustomValidator
>
</
td
>
</
tr
>
<
tr
>
<
td
>
<
asp:Button
ID
=
"Button1"
runat
=
"server"
Text
=
"OK"
OnClick
=
"Button1_Click"
/>
</
td
>
<
td
></
td
>
<
td
></
td
>
<
td
></
td
>
</
tr
>
</
table
>
<
br
/>
<
br
/>
<
asp:Label
ID
=
"Label2"
runat
=
"server"
Text
=
""
></
asp:Label
>
</
div
>
</
form
>
</
body
>
</
html
>
Default.aspx.cs
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
public
partial
class
_Default : System.Web.UI.Page {
-
protected
void
Page_Load(
object
sender, EventArgs e) {
-
/*---При возникновении ошибки---*/
-
/*В WebForms для режима UnobtrusiveValidationMode требуется сопоставление
-
ScriptResourceMapping для "jquery". Добавьте сопоставление
-
ScriptResourceMapping с именем jquery (с учетом регистра)*/
-
/*---добавьте код---*/
-
Page.UnobtrusiveValidationMode = System.Web.UI.UnobtrusiveValidationMode.None;
-
/*---или добавьте строку в файл Web.config---*/
-
/*
-
<appSettings>
-
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
-
</appSettings>
-
*/
-
}
-
protected
void
Button1_Click(
object
sender, EventArgs e) {
-
if
(Page.IsValid) {
-
Label2.Text =
"Вы ввели четное число : "
+ TextBox1.Text;
-
}
-
}
-
protected
void
CustomValidator1_ServerValidate(
object
source, ServerValidateEventArgs args) {
-
int
value = 0;
-
if
(Int32.TryParse(args.Value,
out
value)) {
-
if
(value % 2 == 0) {
-
args.IsValid =
true
;
-
}
-
else
{
-
args.IsValid =
false
;
-
(source
as
Label).Text =
"Это не четное число"
;
-
}
-
}
-
else
{
-
args.IsValid =
false
;
-
(source
as
Label).Text =
"Введите четное число"
;
-
}
-
}
}
using
System;
using
System.Collections.Generic;
using
System.Linq;
using
System.Web;
using
System.Web.UI;
using
System.Web.UI.WebControls;
public
partial
class
_Default : System.Web.UI.Page {
protected
void
Page_Load(
object
sender, EventArgs e) {
/*---При возникновении ошибки---*/
/*В WebForms для режима UnobtrusiveValidationMode требуется сопоставление
ScriptResourceMapping для "jquery". Добавьте сопоставление
ScriptResourceMapping с именем jquery (с учетом регистра)*/
/*---добавьте код---*/
Page.UnobtrusiveValidationMode = System.Web.UI.UnobtrusiveValidationMode.None;
/*---или добавьте строку в файл Web.config---*/
/*
<appSettings>
<add key="ValidationSettings:UnobtrusiveValidationMode" value="None" />
</appSettings>
*/
}
protected
void
Button1_Click(
object
sender, EventArgs e) {
if
(Page.IsValid) {
Label2.Text =
"Вы ввели четное число : "
+ TextBox1.Text;
}
}
protected
void
CustomValidator1_ServerValidate(
object
source, ServerValidateEventArgs args) {
int
value = 0;
if
(Int32.TryParse(args.Value,
out
value)) {
if
(value % 2 == 0) {
args.IsValid =
true
;
}
else
{
args.IsValid =
false
;
(source
as
Label).Text =
"Это не четное число"
;
}
}
else
{
args.IsValid =
false
;
(source
as
Label).Text =
"Введите четное число"
;
}
}
}