Confirmer la publication OnClientClick bouton ASP.NET
<asp:Button runat="server" ID="btnUserDelete" Text="Delete" CssClass="GreenLightButton"
OnClick="BtnUserDelete_Click"
OnClientClick="return UserDeleteConfirmation();"
meta:resourcekey="BtnUserDeleteResource1" />
J'ai essayé:
function UserDeleteConfirmation() {
if (confirm("Are you sure you want to delete this user?"))
return true;
else
return false;
}
et
function UserDeleteConfirmation() {
if (confirm("Are you sure you want to delete this user?")) {
__doPostBack(btnUserDelete, '');
}
return false;
}
Et aucun d'entre eux travaille.
- assurez-vous que la page validateurs ne pas me faire virer... si les validations avoir été licencié, vous ne serez pas en mesure de soumettre la page.BTW code ressemble gud
- Je sais que vous avez trouvé une solution, mais j'ai posté une réponse ci-dessous qui explique ce qui a été la cause sous-jacente de ce problème.
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
De cette façon, le "retour" n'est exécuté lorsque l'utilisateur clique sur "annuler" et non pas quand il clique sur "ok".
Par le chemin, vous pouvez raccourcir le UserDeleteConfirmation fonction:
UserDeleteConfirmation()
, vous pouvez alors utiliserOnClientClick="return UserDeleteConfirmation();"
Il y a des solutions qui fonctionnent, mais je ne vois pas d'expliquer ce qui se passe réellement ici, donc, même si c'est 2 ans je vais l'expliquer.
Il n'y a rien de "mal" avec la onclientclick javascript à ajouter. Le problème est que asp.net est en ajoutant qu'il est sur le onclick trucs à courir APRÈS le code que vous avez mis en déroule.
Ainsi, par exemple cette ASPX:
est transformé en HTML lors du rendu:
Si vous regardez de près, les __doPostBack choses ne sera jamais atteint, car le "confirmer", toujours retourner true/false avant d' __doPostBack est atteint.
C'est pourquoi vous devez avoir de l'confirmer que le retour de faux et de ne pas revenir lorsque la valeur est true. Techniquement, il n'a pas d'importance si elle retourne true ou false, tout retour dans cette instance aurait pour effet d'empêcher l' __doPostBack d'être appelé, mais pour la convention, je laisse pour qu'il retourne false si la valeur est false et ne fait rien pour vrai.
Vous pouvez mettre les réponses ci-dessus en une seule ligne de ce genre. Et vous n'avez pas besoin d'écrire la fonction.
À l'aide de jQuery UI dialog:
SCRIPT:
HTML:
essayez ceci :
Le code ressemble à ceci:
En Aspx:
dans Cs:
essayez ceci :
OnClientClick="return confirm('Are you sure ?');"
Définir les éléments suivants :
CausesValidation="False"
CausesValidation="true"
etOnClientClick
pas compatible ?Essayez ceci:
C'est une manière simple de faire la validation côté client AVANT la confirmation.
Il fait usage de la construite en ASP.NET validation javascript.
Source: La Validation Côté Client à l'aide de ASP.Net programme de validation des Contrôles à partir de Javascript
Essayez ceci:
Bouton d'appel de la fonction:
Dans la classe .cs appel de la méthode: