It seems to me that you misunderstand when and where code runs. Server-side vs. Client-side.
The problem with ASP.NET Validation "controls" is that you can't be quite sure where it is going to run. I suggest you write your own validation in JavaScript.
That way, you can move your "Save" button "click" event from the server, to the client.
Your program flow would be:
1) Server-side code renders a page to the browser.
2) User clicks "Save", which calls a client-side JavaScript function.
3) The function validates the form. If it passes validation, it does a form.submit() to return control to the server. You put your code in the Page_Load event, checking for postbacks, etc.
4) If, still on the client, the page doesn't pass validation, show a JavaScript confirm(). If the user selects "ok", submit the form. If not, "return false" to cancel any form submission.
This is the RIGHT WAY to do this, believe me! At some point, if you're lost and seeking advice, you have to take the advice you're being given.
Consider the alternative:
1) Server renders a page
2) User clicks "Save", which submits back to the server.
3) Server validates
4) Validation fails, so server must render/register script to browser
5) Client runs script, shows Confirm(), user confirms,
6) Server processes the form AGAIN, this time skipping validation.
Way to much back-and-forth.
Thomas D. Greer
Providing PostScript & PDF
Training, Development & Consulting