1º . Como puedo saber si el usuario selecciono una fila. (Esto es para poner una condicion al grabar)
En el Grid insertas un campo Commandfield.
Puedes elegir entre una imagen, un link o un boton. Cambias con la propiedad ButtonType
En CommandName pones por ejemplo "Select" (se puede llamar pepito, si quieres, pero acuerdate de como le has llamado, para posteriormente recogerlo.
Esto te innsertará una colummna adicional en la posicion que hayas elegido y al hacer click se dispara el evento RowCommand que se captura como sigue:
Protected Sub GridView1_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridView1.RowCommand
'Aqui haces lo que quieras
End Sub
Ejemplo de un cacho de cogido que tengo con un grid con 3 imagenes con Command (Editar, Detalles, Borrar)
' Convertir el indice de la fila seleccionada almacenado en CommandArgument a Integer
'Dim index As Integer = Convert.ToInt32(e.CommandArgument)
'Declarad objeto GridviewRow que apunta a la Fila seleccionada (index)
'Dim selectedRow As GridViewRow = GridView1.Rows(index)
'Declaro la celda del campo (4. columna) que me interesa de la fila seleccionada.
'Dim PlazaCell As TableCell = selectedRow.Cells(3)
*********************************************
Todo esto no es necesario hacerlo si no necesitas pasar parametros que estan en el grid a la pagina destino. Pero lo he puesto para que veas como se accede a las filas y columnas seleccionadas
*********************************************
Ahora lo interesante es recoger el commandname de los argumentos.
Esto sirve para saber cual de los botones han pulsado.
Select Case e.CommandName
Case "Detalles"
response.redirect("Detalles.aspx")
Case "Editar"
response.redirect("Editar.aspx")
Case "Borrar"
response.redirect("Borrar.aspx")
End Select
Espero que te haya servido
A la segunda
Limpiar? La verdad es que no tengo ni idea, pero te puedo preguntar para que?
Si la muestras....para que quieres mostrarla vacia?
Saludos