The solution maily depends on your client's browser capabilities...
If you can ensure that javascript is enabled, then you can add the
following script:
C#:
yourButton.Attributes.Add( "onClick='yourButton.enabled=false;'");
The problem is if your site is public and you cannot ensure that your
clients all have javascript enabled!
In that case, you can only rely on server side code, and you have to
ensure that if 2 posts came from the same client, all but the 1st will
be ignored!