Réponse acceptée !
Voici comment j'ai résolu le problème :
Dans le programme :
Code Visual Basic :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Page.IsPostBack = False Then
' ajoute un OnClientClick temporisé qui grise le bouton 3 milli secondes après le click
AddOffOnClientClick(btnEnreg)
' etc ...
End If
' etc
End Sub
' cette fonction ajoute une fonction javascript du nom de l'id+Off de l'objet (monbtnOff())
' et qui disable l'objet en question
' ensuite elle initialise OnClientClick de l'objet en question
' pour qu'il execute la fonction javascript apres 3 milli secondes
' (si on disable tout de suite l'action du bouton ne se poursuit pas !)
'
Code Visual Basic :
Public Function AddOffOnClientClick(ByVal Btn As System.Web.UI.WebControls.Button) As String
Dim name As String
name = Btn.UniqueID
Page.ClientScript.RegisterStartupScript(Me.GetType(), name, "function " & name _
& "off() { document.forms[0]['" & name & "'].disabled = true;" & " }", True)
name = name & "off()"
Btn.OnClientClick = "self.setTimeout('" & name & ";' ,3);"
Return name
End Function
Merci à Cyril Durand pour son code (Cyril.Controls) qui m'a inspiré.