Cómo crear un mensaje de confirmación para eliminar un registro en un GridView

En este post veremos cómo implementar un mensaje de confirmación con javascript para borrar un registro en un GridView.

Debes tener un GridView y un ObjectDataSource similares a estos:

ASP:
  1. <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="ObjectDataSource1" AllowPaging="True" AllowSorting="True" CellPadding="0" PageSize="30" GridLines="None" Width="100%" DataKeyNames="id">
  2.     <Columns>
  3.         <asp:BoundField DataField="id" HeaderText="ID" InsertVisible="False" SortExpression="id" />
  4.         <asp:BoundField DataField="usuario" HeaderText="Usuario" SortExpression="usuario" />
  5.  
  6.         <asp:TemplateField HeaderText="Eliminar">
  7.           <ItemTemplate>
  8.             <asp:LinkButton ID="LinkButton1"
  9.               CommandArgument='<%# Eval("id") %>'
  10.               CommandName="Delete" runat="server">
  11.               Eliminar</asp:LinkButton>
  12.           </ItemTemplate>
  13.         </asp:TemplateField>           
  14.        
  15.     </Columns>
  16.  
  17.     <EmptyDataTemplate>
  18.         No existen registros.
  19.     </EmptyDataTemplate>
  20. </asp:GridView>
  21. <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" OldValuesParameterFormatString="{0}"
  22.     SelectMethod="ObtenParaGridView" TypeName="BLLComentario" DeleteMethod="BorraComentario">
  23.     <DeleteParameters>
  24.         <asp:Parameter Name="id" Type="Int32" />
  25.     </DeleteParameters>
  26. </asp:ObjectDataSource>

Ahora bien, para agregar el javascript necesario para realizar la confirmación, debemos valernos del evento GridView1_RowDataBound, así:

VB.NET:
  1. Protected Sub GridView1_RowDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowDataBound
  2.         'Anadir javascript de confirmacion para cada linkbutton
  3.         If e.Row.RowType = DataControlRowType.DataRow Then
  4.             Dim Lb As LinkButton = e.Row.FindControl("LinkButton1")
  5.             Lb.Attributes.Add("onclick", "javascript:return confirm('¿Está seguro de que desea eliminar el registro con ID=" & DataBinder.Eval(e.Row.DataItem, "id") & "?')")
  6.         End If
  7.     End Sub

Y listo, obtendremos una confirmación como esta:

Confirmar con javascript eliminación de registro en GridView

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.