Vous devez utiliser JavaScript pour modifier le lien une fois que vous avez cliqué dessus afin d'éviter tout traitement ultérieur des clics, avant d'autoriser la publication de la publication. Une tentative naïve serait,
<asp:LinkButton runat="server" id="button" OnClientClick="this.href='#'">
Click - doesn't quite work
</asp>
Cela empêche avec succès les clics successifs de déclenchement de la postback, mais il empêche également le premier clic de déclenchement de la publication. Un peu plus de logique est nécessaire pour que cela fonctionne correctement. Dans le codebehind, j'attrape l'extrait de code JavaScript de publication et je l'intègre dans une logique.
protected void Page_PreRender(object sender, EventArgs e)
{
button1.OnClientClick = string.Format(
"if(this.getAttribute('disabled')) return false; {0}; this.setAttribute('disabled','disabled'); return false;",
Page.ClientScript.GetPostBackEventReference(button1, null));
}
Dans le modèle HTML:
<asp:LinkButton runat="server" id="button" >
Click - does not allow multiple postbacks
</asp>
Vous pouvez embellir ce avec un peu de CSS, et à ce moment-là je vous conseille notamment jQuery, de sorte que votre code est plus concis (en raison de son enchaînement de commande).
Selon vous, qu'est-ce qui ne va pas avec votre solution actuelle? – pmarflee