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?
Je pourrais résoudre ce problème en utilisant un UpdatePanel qui inclut les contrôles/éléments impliqués.
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.
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;" />
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é.
Utilisez ceci:-
someID.Attributes.Add("onClick", "return false;");
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
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.
en utilisant UseSubmitBehavior = "false", vous pouvez désactiver les publications de onback
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.