Если вы отключите кнопку до ее отправки назад, событие на стороне сервера не будет зарегистрировано.
Самый простой способ сделать это - скрыть кнопку после щелчка или создать обработчик, который удерживает второй щелчок от каскадирования до сообщения формы.
В прошлый раз у меня была эта проблема, когда .style.display = "none" в onclientclick сделали то, что мне нужно
Disabled - это не просто стиль, это состояние, которое уважает сервер.
<asp:Button ID="Button1" OnClientClick="javascript:this.style.display = 'none'"
onclick="Button1_Click" runat="server" Text="Button" />