ASP.NET - Como Borrar múltiples datos de un ASPxGridView usando el Checkbox?

   
Vista:

Como Borrar múltiples datos de un ASPxGridView usando el Checkbox?

Publicado por Franklin (3 intervenciones) el 06/03/2013 16:59:48
Hola buen día tengo el siguiente problema, estoy realizando un sistema de préstamo y tengo problemas con la devolución ya que necesito seleccionar los expedientes que me van a devolver mediante un checkbook en ASPxGridView.

Tengo el siguiente código pero solo me borra = modifica una si solo existe una prestada a la persona. pero si le he prestado 5 expedientes a una persona al momento de ejecutar me da error, cabe mencionar que en si no es borrar lo que hago si no cambiar de estados por ejemplo de estado prestado cambie a Archivo y que de True pase a false para ello mando a llamar 2 procedimientos almacenados, necesito ayuda con el checkbook, necesito un corrección en mi código.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Protected Sub BtnDevolucion_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnDevolucion.Click
        If ASPxGridView1.Selection.Count > 0 Then
            Dim KeyValues As List(Of Object) = ASPxGridView1.GetSelectedFieldValues("Cod_Exp")
            Dim m As StringBuilder = New StringBuilder(KeyValues(0).ToString())
            For i = 0 To ASPxGridView1.VisibleRowCount - 1
                Dim cmd As New SqlCommand("ModificarEstadoExpediente", Conexion)
                cmd.CommandType = CommandType.StoredProcedure
                With cmd.Parameters
                    .Add("Cod_Exp", SqlDbType.Int).Value = Convert.ToInt32(ASPxGridView1.GetRowValues(i, "Cod_Exp").ToString)
                End With
                Conexion.Open()
                Try
                    Dim i1 As Integer = cmd.ExecuteNonQuery
                Catch ex As Exception
                Finally
                End Try
                Dim cmd1 As New SqlCommand("ModificarDevolucionTrueFalse", Conexion)
                cmd1.CommandType = CommandType.StoredProcedure
                With cmd1.Parameters
                    .Add("Cod_Exp", SqlDbType.Int).Value = Convert.ToInt32(ASPxGridView1.GetRowValues(i, "Cod_Exp").ToString)
                End With
                Try
                    Dim i2 As Integer = cmd1.ExecuteNonQuery
                Catch ex As Exception
                    MsgBox("Error")
                Finally
                End Try
            Next
            Conexion.Close()
            Dim message As String = "La devolucion se ha Realizado con Exito"
            Dim sb As New System.Text.StringBuilder()
            sb.Append("<script type = 'text/javascript'>")
            sb.Append("window.onload=function(){")
            sb.Append("alert('")
            sb.Append(message)
            sb.Append("')};")
            sb.Append("</script>")
            ClientScript.RegisterClientScriptBlock(Me.GetType(), "alert", sb.ToString())
            GridDevolucion.OldValuesParameterFormatString = True
            ASPxGridView1.DataBind()
        End If
    End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Como Borrar múltiples datos de un ASPxGridView usando el Checkbox?

Publicado por Khristian (335 intervenciones) el 11/03/2013 20:32:16
Y haces todo el el codigo del boton.-..??

No seria mas facil, que en el boton de Seleccionar la fila del gridview en su codigo (SelectedIndexChanged), programes solo el codigo a una clase que abra la conexion y actualize el estado, tomando como clave un campo de la gridview..??

SelectedIndexChanged
.....si devolver(dataKey_de_la_fila_seleccionada) entonces
.............OK
..... sino
.............ERROR
.....fin si
----->



funcion devolver(id) como boolean
.... codigo conexion SQL
....etc
....etc
.... efectuar la actualizacion del registro y devolver true si fue satisfactoria, y false en caso contrario
....
----->
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como Borrar múltiples datos de un ASPxGridView usando el Checkbox?

Publicado por franklin (3 intervenciones) el 12/03/2013 02:22:12
Estoy trabajando de la siguiente manera tengo un Procedimiento Almacenado en SQL2008 de esta forma:
ALTER Procedure [dbo].[DevolucionFinal]
@Cod_Exp int,
@Cod_Pre int
AS
BEGIN
exec dbo.ModificarEstadoExpediente @Cod_Exp
exec dbo.ModificarDevolucionTrueFalse @Cod_Exp
exec dbo.ModificarFechaDevolucion @Cod_Pre
End

en este Procedimiento ejecuto otros 3 procedimientos que me cambian los estados del expediente.


ya explicado todo que tiene que ver con procedimiento.... voy a asp.net vb 2010 y ejecuto el procedemiento asi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Protected Sub BtnDevolucion_Click(ByVal sender As Object, ByVal e As EventArgs) Handles BtnDevolucion.Click
 
For i = 0 To ASPxGridView1.VisibleRowCount - 1
    Dim cmd As New SqlCommand("DevolucionFinal", Conexion)
    cmd.CommandType = CommandType.StoredProcedure
    With cmd.Parameters
        .Add("Cod_Exp", SqlDbType.Int).Value = Convert.ToInt32(ASPxGridView1.GetRowValues(i, "Cod_Exp").ToString)
        .Add("Cod_Pre", SqlDbType.Int).Value = Convert.ToInt32(ASPxGridView1.GetRowValues(i, "Cod_Pre").ToString)
    End With
    Conexion.Open()
    Try
        Dim i1 As Integer = cmd.ExecuteNonQuery
    Catch ex As Exception
    Finally
        Conexion.Close()
    End Try
Next
    GridDevolucion.OldValuesParameterFormatString = True
    ASPxGridView1.DataBind()
End If


Como hago para Modificar ASPxGridView solo las filas que tengan Checkbox?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Como Borrar múltiples datos de un ASPxGridView usando el Checkbox?

Publicado por Khristian (335 intervenciones) el 23/03/2013 01:08:56
Debes crear un objeto del tipo gridview row
A este objeto le asignarás cada una de las filas del gridview ...

Como???

Haces un bucle for each para todas las filas del gridview
Con eso recorres cada fila y vas asignando la fila actual al objeto gridview row creado

En el objeto creado ya tienes acceso al contenido de la fila
Creas un objeto checkbox y le asignas tu checkbox de la fila usando findcontrol

Al objeto checkbox le verificas la propiedad checked y haces lo tuyo


Nota: la conexión ábrela antes del for each y cierrala fuera del mismo

Saludos

Te recomiendo que en el evento databound (creo que ese es) del gridview, o sea, cada vez que es llenado el gridview, evalúes si hay filas y solo si las hay habilites el botón para actualizar.

Ejemplo:

Evento databound del gridview
.... BotonActualizar.enable = (gridview.cantidaddefilas > 0)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar