domingo, 2 de septiembre de 2007

Selección múltiple con checkbox en Gridview

Muchas veces necesitamos ejecutar una acción para múltiples filas seleccionadas en un gridview a través de un checkbox, para ello lo primero que necesitamos es agregar la propiedad DataKeyNames con el ID primario de los datos que cargamos, asi podemos realizar las acciones necesarias accediendo individualmente a cada registro del GridView.

<asp:GridView id="gridview1" runat="server" DataKeyNames="id_persona" AutoGenerateColumns="False">
<Columns>
.
.

Aqui agregamos el TemplateField con el checkBox para insertarlo en el GridView...

.
.
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox id="chkMarca" runat="server"></asp:CheckBox>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>

Si queremos que las acciones se tomen sin necesidad de utilizar los eventos manejados por el GridView, podemos crear un Método que puede ser llamado directamente por un botón u otro control.


Private Sub EliminarPersonasSeleccionadas()
Dim persona as New Persona()
Dim iditem As Integer
For Each
dgi As GridViewRow In Me.gridview1.Rows
Dim ch As CheckBox = CType(dgi.FindControl("chkMarca"), CheckBox)
If ch.Checked Then
iditem = gridview1.DataKeys(dgi.DataItemIndex).Value
persona.id_persona
= iditem
persona.Eliminar()
End If
Next
End Sub



No hay comentarios: