¿Cómo agregar una opción "confirmar eliminar" en ASP.Net Gridview?Cómo agregar una opción "confirmar eliminar" en ASP.Net Gridview?
Respuesta
Esto debe hacerlo.
lo encontré aquí: http://forums.asp.net/p/1331581/2678206.aspx
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:ImageButton ID="DeleteButton" runat="server" ImageUrl="~/site/img/icons/cross.png"
CommandName="Delete" OnClientClick="return confirm('Are you sure you want to delete this event?');"
AlternateText="Delete" />
</ItemTemplate>
</asp:TemplateField>
Si no desea utilizar una imagen, puede utilizar un LinkButton en lugar de ImageButton como se muestra en la solución de @Saksham-Gupta debajo de –
Este es mi método preferido. Bastante recta hacia adelante:
http://www.codeproject.com/KB/webforms/GridViewConfirmDelete.aspx
Puede hacerlo utilizando OnClientClick de botón.
OnClientClick="return confirm('confirm delete')"
gracias, funcionó para mí, pero en forma de mensaje emergente , ¿hay alguna manera de aparecer en la página web en sí no como el cuadro de mensaje –
Hice esto un poco diferente. En mi vista de cuadrícula configuré el AutoGenerateDeleteButton="true"
. Para encontrar el botón Eliminar, uso jQuery y agrego un evento de clic a los Anclas encontrados.
jQuery("a").filter(function() {
return this.innerHTML.indexOf("Delete") == 0;
}).click(function() { return confirm("Are you sure you want to delete this record?");
});
Esto es rápido y simple para lo que tengo que hacer. Solo tenga en cuenta que cada ancla en la página que muestra Eliminar será seleccionada por jQuery y tendrá el evento agregado.
Funciona bien. Puede mejorar aún más agregando un selector más específico para buscar anclajes dentro de la cuadrícula si lo necesita. –
Estaba teniendo problemas para obtener un comandoField Delete button para aceptar la respuesta 'return false' cuando un usuario hace clic en cancelar en la ventana emergente 'Are you' que obtiene con la función javascript confirm(). No quería cambiarlo a un campo de plantilla.
El problema, como yo lo veo, es que estos commandField Buttons ya tienen Javascript asociado para realizar la devolución de datos. Ninguna cantidad de simplemente agregar la función de confirmación() fue efectiva.
Así es como lo resolví:
usando jQuery, me encontró por primera vez cada botón Borrar de la página (hay varios), entonces manipulado Javascript asociado del botón en función de si el visitante estuvo de acuerdo o se cancela el emergente confirmando arriba.
<script language="javascript" type="text/javascript">
$(document).ready(function() {
$('input[type="button"]').each(function() {
if ($(this).val() == "Delete") {
var curEvent = $(this).attr('onclick');
var newContent = "if(affirmDelete() == true){" + curEvent + "};"
$(this).attr('onclick',newContent);
}
});
}
function affirmDelete() {
return confirm('Are you sure?');
}
</script>
Prueba esto:
he usado para actualización y Eliminar botones. No toca Editar botón. Puede usar botones generados automáticamente.
protected void gvOperators_OnRowDataBound(object sender, GridViewRowEventArgs e)
{
if(e.Row.RowType != DataControlRowType.DataRow) return;
var updateButton = (LinkButton)e.Row.Cells[0].Controls[0];
if (updateButton.Text == "Update")
{
updateButton.OnClientClick = "return confirm('Do you really want to update?');";
}
var deleteButton = (LinkButton)e.Row.Cells[0].Controls[2];
if (deleteButton.Text == "Delete")
{
deleteButton.OnClientClick = "return confirm('Do you really want to delete?');";
}
}
Si su Gridview
utilizarse con AutoGenerateDeleteButton="true"
, puede convertirlo a LinkButton
:
Haga clic Tareas de GridView y luego Editar columnas.
Seleccionar Eliminar en campos seleccionados, y haga clic en Convertir este campo en un TemplateField.A continuación, haga clic en OK :
Ahora se crearán sus
LinkButton
. Puede añadirOnClientClick
evento alLinkButton
así:
OnClientClick="return confirm('Are you sure you want to delete?'); "
que no querían cualquier imagen, así que modifiqué la respuesta dada por @statmaster para que sea simple entrada, junto con las otras columnas.
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CommandName="Delete" OnClientClick="return confirm('Are you sure you want to delete this entry?');">Delete </asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
El color del texto se puede cambiar con la propiedad Forecolor.
Esta es la forma más sencilla de eliminar con confirmación en una vista de cuadrícula – JoshYates1980
Me gusta esta forma de agregar un mensaje de confirmación antes de eliminar un registro de una vista de cuadrícula. Esta es la definición CommandField anidada dentro de un control web GridView en la página aspx. Aquí no hay nada sofisticado, solo un campo de comando directo.
<asp:CommandField ShowEditButton="true" UpdateText="Save" ShowDeleteButton="True">
<ControlStyle CssClass="modMarketAdjust" />
</asp:CommandField>
Entonces, todo lo que tenía que hacer era añadir algo de código para el evento RowDeleting del control GridView. Este evento desencadena antes de la fila se borra realmente, lo que le permite obtener la confirmación del usuario y cancelar el evento si no desea cancelarla después de todo. Aquí está el código que puse en el controlador de eventos RowDeleting:
Private Sub grdMarketAdjustment_RowDeleting(sender As Object, e As GridViewDeleteEventArgs) Handles grdMarketAdjustment.RowDeleting
Dim confirmed As Integer = MsgBox("Are you sure that you want to delete this market adjustment?", MsgBoxStyle.YesNo + MsgBoxStyle.MsgBoxSetForeground, "Confirm Delete")
If Not confirmed = MsgBoxResult.Yes Then
e.Cancel = True 'Cancel the delete.
End If
End Sub
Y que parece funcionar bien.
@ la respuesta de statmaster es preferible a esta. En primer lugar, solo necesita poner código en la página aspx (este requiere código tanto en la página aspx como en la página código subyacente). En segundo lugar, se requiere MsgBox para esta solución y es posible que no funcione en un servidor web. Todavía podría usar ScriptManager para mostrar una alerta en el código subyacente, en lugar de usar MsgBox, y funcionaría tanto en Visual Studio como en el servidor web. Pero, ¿por qué no usar simplemente la solución más simple que no requiere ningún código en el código subyacente? –
Este código funciona bien para mí.
jQuery("a").filter(function() {
return this.innerHTML.indexOf("Delete") == 0;
}).click(function() { return confirm("Are you sure you want to delete this record?");
});
me gusta bastante añadiendo el código en el evento GridView
RowDataBound
para informar al usuario exactamente qué elemento que están tratando de eliminar. Ligeramente mejor experiencia de usuario?
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
LinkButton lnkBtnDelete = e.Row.FindControl("lnkBtnDelete") as LinkButton;
// Use whatever control you want to show in the confirmation message
Label lblContactName = e.Row.FindControl("lblContactName") as Label;
lnkBtnDelete.Attributes.Add("onclick", string.Format("return confirm('Are you sure you want to delete the contact {0}?');", lblContactName.Text));
}
}
Me encanta la solución de JavaScript y tener algunas actualizaciones para trabajar con dinámica ajax carga:
$(document).on("click", "a", function() {
if (this.innerHTML.indexOf("Delete") == 0) {
return confirm("Are you sure you want to delete this record?");
}
});
espero que ayude;)
- 1. ¿Cómo agregar una columna de GridView en código subyacente?
- 2. ASP.NET MVC Eliminar Enlace de acción con confirmar
- 3. ¿Cómo crear un botón Eliminar en GridView?
- 4. Cómo definir CellPadding en GridView en ASP.NET
- 5. ASP.NET + GridView + CommandField como TemplateField
- 6. Crear GridView en asp.net MVC3.0
- 7. Cómo agregar NavigateUrl hipervínculo en gridview
- 8. PageIndexChanging en GridView en ASP.NET
- 9. asp.net gridview checkbox selection
- 10. ASP.NET gridview fila onclick
- 11. ASP.NET: Ocultar columnas en gridview
- 12. asp.net dinámicamente agregar GridViewRow
- 13. método: =>: borrar no funciona y: confirmar opción ignorada
- 14. @ Html.DropDownListFor ¿Cómo agregar la opción?
- 15. Asp.Net GridView obtener fila actual en TemplateField
- 16. ¿Cómo eliminar una sesión específica en asp.net?
- 17. Replicar formularios web GridView en ASP.NET MVC
- 18. Agregar flechas de clasificación predeterminadas a GridView
- 19. Crear hipervínculo en asp.net gridview C#
- 20. Git, agregar cambios a confirmar, diferencia entre agregar y confirmar flags
- 21. GridView texto de cabecera en asp.net
- 22. Agregar el parámetro Querystring a GridView ItemTemplate
- 23. ASP.NET GridView RowCommand TextBox vacío
- 24. ASP.NET GridView SortedAscendingHeaderStyle no funciona
- 25. Gridview deshabilitar edición en 1 columna asp.net
- 26. ¿Cómo agregar una nueva opción antes de la última opción de una selección?
- 27. Cómo puedo agregar borde a ListViewItem, ListView en modo GridView
- 28. Eliminar WPF ListView/GridView resaltar cromo
- 29. ¿Cómo poner un botón en un encabezado de ASP.NET gridview?
- 30. Javascript Confirmar Eliminar en un archivo PHP (en href)
donde desea añadir "Confirmar eliminación" opción en el interior botón de vista de cuadrícula o fuera de gridview? –