[ad_1]
Hola amigos,
en mi asp:GridView
componente Tengo la configuración DeleteMethod. También se configura CommandField:
<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" />
En OnRowDataBound()
método que verifico para el DeleteButton
y agregue javascript al evento onclientclick.
El javascript funciona, pero el Ok no lleva a iniciar el DeleteMethod
en Código subyacente.
Cuando no agrego javascript, el método funciona.
¿Cómo hacer que un botón de comando de eliminación funcione con javascript?
** Usando .NET Framework 4.7.2
Lo que he probado:
Mi código para agregar el 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?\");"); }
Solución 1
Los botones de enlace/imagen de WebForms se implementan llamando algo de JavaScript al hacer clic en ellos.
Pero has añadido JavaScript. antes aquello que regresa incondicionalmente true/false
lo que significa que este código nunca será llamado.
Si ve la fuente de su página, verá algo parecido a:
onclick="javascript: return confirm(...); DoPostBack(...);"
Claramente, nunca se puede llamar al método de devolución de datos.
Cambia tu OnClientClick
a solo return
si el usuario opta por cancelar:
deleteButton.OnClientClick = "if(!confirm(\"Are you sure?\")){return false;}";
[ad_2]
コメント