[ad_1]
Salut les gens,
dans mon asp:GridView
composant J’ai la configuration DeleteMethod. CommandField est également configuré :
<asp:CommandField ShowEditButton="true" ShowDeleteButton="true" ButtonType="Image" ControlStyle-Width="24px" EditImageUrl="~/Images/edit-icon-png-3601.png" CancelImageUrl="~/Images/close-button-png-30225.png" UpdateImageUrl="~/Images/check-tick-icon-14150.png" DeleteImageUrl="~/Images/trash-can-24846.png" />
Dans OnRowDataBound()
méthode que je vérifie pour le DeleteButton
et ajoutez du javascript à l’événement onclientclick.
Le javascript fonctionne, mais le Ok ne conduit pas au démarrage du DeleteMethod
dans CodeBehind.
Quand je n’ajoute pas le javascript, la méthode fonctionne.
Comment faire fonctionner un bouton de commande de suppression avec javascript ?
** Utilisation du .NET Framework 4.7.2
Ce que j’ai essayé :
Mon code pour ajouter le javascript :
public static void AddDeleteMessage(GridViewRow row) { int nrControls = row.Controls.Count; Control lastGridViewCell = row.Controls[nrControls - 1]; var deleteButton = lastGridViewCell.Controls.OfType<ImageButton>().FirstOrDefault(btn => btn.CommandName == "Delete"); if (deleteButton != null) { deleteButton.OnClientClick = string.Format("javascript: return confirm(\"Are you sure?\");"); }
Solution 1
Les boutons de lien/image WebForms sont implémentés en appelant du JavaScript lorsque vous cliquez dessus.
Mais vous avez ajouté JavaScript avant ce qui revient inconditionnellement true/false
ce qui signifie que ce code ne sera jamais appelé.
Si vous affichez la source de votre page, vous verrez quelque chose qui ressemble à :
onclick="javascript: return confirm(...); DoPostBack(...);"
Il est clair que la méthode de publication ne peut jamais être appelée.
Change ton OnClientClick
à seulement return
si l’utilisateur choisit d’annuler :
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";
[ad_2]
コメント