web-dev-qa-db-fra.com

Désactiver la publication en cliquant sur un bouton

Je veux désactiver la publication après avoir cliqué sur un <asp:Button>. J'ai essayé de le faire en assignant onclick="return false", mais le bouton ne fonctionne pas.

Comment puis-je réparer cela?

15
user947344

Je pourrais résoudre ce problème en utilisant un UpdatePanel qui inclut les contrôles/éléments impliqués.

1
user947344
onClientClick="return false"

Ça devrait le faire! Onclick fera référence à une fonction ASP.net, onClientClick sera rendu sous la forme OnClick sur le contrôle en HTML.

12
Tom Gullen

onclick est utilisé pour câbler vos événements côté serveur. Vous devez utiliser le gestionnaire OnClientClick tel que <asp:button OnClientClick="return false;" />

2
arviman

Voir comme aucune de ces réponses m'a aidé. J'ai trouvé une solution. Au lieu d'utiliser le bouton ASP.NET <asp:Button>, vous devez utiliser le bouton HTML. Cela a fonctionné parfaitement et ressemble exactement au bouton ASP.NET. Pour que le bouton HTML soit envoyé côté serveur, vous utilisez l'attribut onserverclick.

<input id="btnState" class="AddButtons" runat="server" type="button" value="Add State" onclick="swap('one', 'two');" />

Pour mon code, j'utilisais JS pour faire quelque chose côté serveur. Le <asp:Button> n'arrêtait pas de publier une publication, mais comme je l'ai dit, le bouton HTML corrigeait mon problème. Veuillez marquer comme réponse ou voter si cela vous a aidé.

1
bds89

Utilisez ceci:- 

  someID.Attributes.Add("onClick", "return false;");
0
Sunil Chaudhary

Placez votre bouton asp à l'intérieur du Updatepanel, comme

<asp:UpdatePanel ID="updPnl" runat="server" UpdateMode="Conditional" RenderMode="Block">
  <ContentTemplate>
    <asp:Button ID="btnID" runat="server"  OnClick="btn_Click" />
  </ContentTemplate>
</asp:UpdatePanel>

J'espère que c'est utile

0
user8258013

Puisque vous voulez le faire après la publication, je suppose que vous voulez empêcher les publications en double-clic? Dans ce cas, il est préférable d’avoir une sorte de variable de maintien d’état que vous définissez après le premier clic du côté client. Comme exemple simple

var clicked = false;
function AllowOneClick(){
   if(!clicked){
      clicked = true;
      return true;
    }
 return false;
 }

Vous définissez ensuite OnClientClick pour renvoyer le résultat de cette méthode sur votre bouton afin que OnclientClick="return AllowOneClick()" Cela ne fonctionne bien sûr que pour un bouton, mais cela devrait vous donner une idée générale.

0
kmcc049

en utilisant UseSubmitBehavior = "false", vous pouvez désactiver les publications de onback 

0
seetha

Dans mon cas, aucune des solutions ci-dessus n'a fonctionné pour moi. 

Ce que je voulais, c'est d'abord appeler une fonction côté client, puis arrêter la publication sur le serveur. Ma solution consistait simplement à ajouter le mot clé return avant d'appeler ma fonction côté client, c'est-à-dire:

<asp:Button Runat=Server OnClientClick="return fyFunction;">

Mon script côté client contient return false dans la dernière ligne de code.

0
Hugo Nava Kopp