In a nutshell:
Whenever a postback would occur (AJAX'ed by an UpdatePanel) I want to do a callback beforehand and only after the callback has completed (either successfully or not) should the postback occur. How can I do this?
Elaborate explanation:
We use ASP.NET AJAX (UpdatePanel 'n stuff) together with DevExpress controls. Among those controls is the ubiquitous GridView. As is typical with ASP.NET gridviews, you can edit rows one-by-one, and to save your changes you have to hit the "update" button at the end of the row. However if you make some changes to the row, then forget to press the "update" button, and hit something else in the page (say the big red SAVE button that causes a postback and saves the whole form to the DB), your changes will be lost. The row will still be in edit mode, but it will have reset to the data it had initially when you started the edit.
Our clients are not happy with this and want the row to be saved automatically if the user forgets to do so himself.
Luckily the DevExpress gridview is smart enough to have an "Update()" method which I can call from JavaScript. Unluckily that causes a callback and returns immediately. If I allow the postback to continue as normally, the callback will get aborted. Well, technically it's a race condition I guess, but so far it seems that the postback wins. There are events to which I could attach for success/failure of the callback, but I don't know how to "resume" the postback that started it all.
We could turn off callbacks for all the grids, but that would be a performance disaster.
Any ideas?