ВСЁ!  
 
 Не в синхронизации дело, а в ошибочной константе. Просто, если 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'ах свойства берутся по умолчанию.