Old post I see, but thought what the heck...I've been messing around doing the same. Trying to avoid the javascript events, so I myself am doing it server side.
When you say it doesn't work, I don't know what aspects do not...
1) for instance did you put a break point in your codebehind that never was hit?
2) Did the modal open but just not behave as expected?
If 1 is the your problem, just remove the attribute OkControlID="btnSave"....having it there from my experience then means you have to define the Ok script event and handle it in javascript. Removing that tag should allow your server side event to fire and perform. Not seeing the code in that event, I can't tell you anything else.
If 2 is your problem, first would have to know details....but can tell you I've noticed in 2008, the AJAX release doesn't work as it does in the prior version. For instance I do the same somewhat, allowing a user to update a value that already exists on the form. However, I have 2 validations, one that the new data is valid and two that it doesn't already exist on the DB, if any of those fail I write an error message to my Modal on a label. All is great, but the page actually flashes now...same code in VS 2005 works great. Which is why I'm actually here looking for some fix or will report the bug to codeplex.
Anyway, maybe someone else stumbling through may find this useful...as I'm sure this post has been forgotten :-)