ВСЁ!
Не в синхронизации дело, а в ошибочной константе. Просто, если Validator находится в состоянии невалидности, на сервере вообще ничего не происходит. Таким образом, проверка if(Page.IsValid) избыточна.
Можно подвести итог...
1. На форме aspx - сторона клиента - размещается кнопка, валидатор и скрипт проверки
<html>
<head>
<script language="VBScript">
Sub DelConfirm(source, arguments)
If MsgBox("Are you sure you want to remove the color?", vbYesNo + vbQuestion, "Confirmation") = vbYes Then
arguments.IsValid = True
Else
arguments.IsValid = False
End If
End Sub
</script>
</head>
<body>
<form id="Form" method="post" runat="server">
<asp:button
id="delButton"
style="Z-INDEX: 107; LEFT: 345px; POSITION: absolute; TOP: 149px"
runat="server"
Text="Delete"
Width="100px">
</asp:button>
<asp:customvalidator
id="DelValidator"
style="Z-INDEX: 108; LEFT: 458px; POSITION: absolute; TOP: 151px"
runat="server"
ClientValidationFunction="DelConfirm"
EnableViewState="False"
Display="None">
</asp:customvalidator>
</form>
</body>
</html>
2. На сервере в cs файле размещается класс формы с обработчиком
using System.Web.UI.WebControls;
...
namespace MyASPApplication
{
public class WebForm : System.Web.UI.Page
{
...
protected System.Web.UI.WebControls.Button delButton;
protected System.Web.UI.WebControls.CustomValidator DelValidator;
...
private void InitializeComponent()
{
...
this.delButton.Click += new System.EventHandler(this.delButton_Click);
...
}
private void delButton_Click(object sender, System.EventArgs e)
{
... собственно удаление ...
}
}
}
Все опущенные в Web Control'ах свойства берутся по умолчанию.