In linea di principio inserisci il pulsante in un DIV, con id ad esempio ButtonDiv. Poi crei un altro DIV contenente la scritta "procedimento in corso...", con id ProgressDiv. Al secondo assegni anche l'attributo style
style="display: none;"
crei una funzione JavaScript
function Toggle() {
document.getElementById("ButtonDiv").style["display"] = "none";
document.getElementById("ProgressDiv").style["display"] = "";
}
da codice, ad esempio nell'evento Page_Load, aggiungi al pulsante un attributo
button.Attributes.Add("onclick", "javascript:Toggle();");
Devi fare in questo modo perchè se nascondi fisicamente il pulsante con JavaScript (in Explorer) il postback e gli eventi ad esso legati non vengono correttamente gestiti da ASP.NET, in quanto Explorer non invia il nome del pulsante premuto se questo è stato nascosto, quindi è necessario inserirlo in un DIV e nascondere quello.