Foros del Web » Programación para mayores de 30 ;) » .NET »

Problemas con GridView

Estas en el tema de Problemas con GridView en el foro de .NET en Foros del Web. Estimados tengo un problema con un GridView, al momento de actualizar este es el codigo que tengo Cancelar Código: Private Sub GridView1_RowCancelingEdit(ByVal sender As Object, ...
  #1 (permalink)  
Antiguo 15/05/2012, 14:57
 
Fecha de Ingreso: abril-2012
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 1
Problemas con GridView

Estimados tengo un problema con un GridView, al momento de actualizar este es el codigo que tengo

Cancelar
Código:
 Private Sub GridView1_RowCancelingEdit(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCancelEditEventArgs) Handles GridView1.RowCancelingEdit
        GridView1.EditIndex = -1
        If cod_memtec.Text <> "" Then
            cargagrid("V_M....", "select * from ....., GridView1) 'esto carga la grilla
        Else
            cargagrid("V_M....", "select * from ....., GridView1)
        End If
    End Sub
Editar
Código:
    Private Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
        If GridView1.SelectedIndex >= 0 Then
            GridView1.EditIndex = e.NewEditIndex
            GridView1.PageIndex = 0
            If cod.Text <> "" Then
                cargagrid("V_M....", "select * from ......, GridView1)
            Else
                cargagrid("V_M......", "select * from ......., GridView1)
            End If
        Else
            RegisterStartupScript("mensajes", mensaje("Debe seleccionar primero el registro ..."))
        End If
    End Sub

Update
Código:
If GridView1.SelectedIndex >= 0 Then
            Dim dt = CType(Session("TaskTable"), DataTable)
            Dim row = GridView1.Rows(e.RowIndex)
            Dim oDataRow As DataRow
            Dim oDataadapter As SqlDataAdapter
            Dim oDataSet As New DataSet
            Dim xDataSet As New DataSet
            Dim conectorx As New SqlConnection
            Dim conectorx2 As New SqlConnection
            conectorx.ConnectionString = sql_conexion
            Dim cod, cam As String
            Dim a As String = row.Cells(1).Text
            cam = GridView1.SelectedRow.Cells(5).Text
el problema es aca, no me reconoce la linea que esta seleccionada y no me encuentra valor GridView1.SelectedRow.Cells(5).Text

espero sus comentarios
  #2 (permalink)  
Antiguo 16/05/2012, 09:01
Avatar de lucord  
Fecha de Ingreso: marzo-2010
Ubicación: San Jose, Costa Rica
Mensajes: 87
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Problemas con GridView

Hola NicroX!!!

Cual es el mensaje de error que te muestra???

y en cual evento estas ejecutando el código del Update???

Salu2.

Luis C.

Última edición por lucord; 16/05/2012 a las 09:05 Razón: correccion
  #3 (permalink)  
Antiguo 16/05/2012, 10:53
 
Fecha de Ingreso: abril-2012
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problemas con GridView

en el evento

Private Sub GridView1_RowUpdating

y el error que erroja es que no encuentra ningun valor en

GridView1.SelectedRow.Cells(5).Text

siendo que esta seleccionada la fila, ojala me puedas ayudar.-
  #4 (permalink)  
Antiguo 18/05/2012, 07:27
Avatar de lucord  
Fecha de Ingreso: marzo-2010
Ubicación: San Jose, Costa Rica
Mensajes: 87
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Problemas con GridView

Envíame tu código para verlo mejor, puede ser que estés usando algún templateField en el Gridview?...

Pasa el del aspx donde esta el gridview y el del evento GridView1_RowUpdating.

Salu2.

Luis C.
  #5 (permalink)  
Antiguo 18/05/2012, 07:46
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 5 meses
Puntos: 267
Respuesta: Problemas con GridView

Hola NicroX has tomado como indice de inicio el valor "0"?? porque recuerda que se comienza en la columna con orden 0,1,2,3,4.... y puede que tu hayas tomado el valor 1 como principal dejando de lado 1 columna y que al final estes tomando la columna "5" cuando en realidad es la "4", verifica ese tema, sino se soluciona nos cuentas. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #6 (permalink)  
Antiguo 18/05/2012, 09:33
 
Fecha de Ingreso: abril-2012
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problemas con GridView

Aquaventus: en la grilla si tome en cuenta el = y tengo mas valores solo quiero editar uno que esta en el medio.-

lucord este es el codigo completo del GridView1_RowUpdating y cargo la grilla con este

codigo: cargagrid("V_MemoriasTecnicas", "select * from V_MemoriasTecnicas where num_mt=" & cod_memtec.Text, GridView1)
y enlazo con los nombres de los campos de la BD y eso los muestra, lo raro que en visual .Net 2008 funionaba lo mas bien, migre a 2010 y dejo de funcionar

Código:
If GridView1.SelectedIndex >= 0 Then
            Dim dt = CType(Session("TaskTable"), DataTable)
            Dim row = GridView1.Rows(e.RowIndex)
            Dim oDataRow As DataRow
            Dim oDataadapter As SqlDataAdapter
            Dim oDataSet As New DataSet
            Dim xDataSet As New DataSet
            Dim conectorx As New SqlConnection
            Dim conectorx2 As New SqlConnection
            conectorx.ConnectionString = sql_conexion
            Dim cod, cam As String
            Dim a As String = row.Cells(1).Text
            cam = GridView1.SelectedRow.Cells(5).Text

            If cod_memtec.Text <> "" Then
                cod = devuelve_codigo("SELECT * FROM Tab_MemoriaTecnicaDet where id_mtdet=" & GridView1.SelectedRow.Cells(1).Text, "Tab_MemoriaTecnicaDet", "id_mtdet")
                oDataadapter = New SqlDataAdapter("SELECT * FROM Tab_MemoriaTecnicaDet where id_mtdet=" & cod, conectorx)
            Else
                cod = GridView1.SelectedRow.Cells(1).Text
                oDataadapter = New SqlDataAdapter("SELECT * FROM Tab_MemoriaTecnicaDet where id_mtdet=" & CInt(cod), conectorx)
            End If
            Dim oCommBuild As SqlCommandBuilder = New SqlCommandBuilder(oDataadapter)
            oDataSet = New DataSet
            conectorx.Open()
            oDataadapter.Fill(oDataSet, "Tab_MemoriaTecnicaDet")
            conectorx.Close()
            oDataRow = oDataSet.Tables("Tab_MemoriaTecnicaDet").Rows(0)
            oDataRow("oc") = (CType((row.Cells(8).Controls(0)), TextBox)).Text
            oDataRow("bd") = "B2"
            oDataadapter.Update(oDataSet, "Tab_MemoriaTecnicaDet")
            If Session.Item("usr_nombre") = "fmorales" Then
                Dim SSQL As String = "update Tab_MemoriaTecnica set comprador_mt='FMM', estado='COMPRA' where num_mt ='" & cod_memtec.Text & "'"
                Dim oComando As New SqlCommand(SSQL, conector4)
                dbopen4()
                oComando.ExecuteNonQuery()
                dbclose4()
            ElseIf Session.Item("usr_nombre") = "rledesma" Then
                Dim SSQL As String = "update Tab_MemoriaTecnica set comprador_mt='RLM', estado='COMPRA' where num_mt ='" & cod_memtec.Text & "'"
                Dim oComando As New SqlCommand(SSQL, conector4)
                dbopen4()
                oComando.ExecuteNonQuery()
                dbclose4()
            ElseIf Session.Item("usr_nombre") = "ccarvajal" Then
                Dim SSQL As String = "update Tab_MemoriaTecnica set comprador_mt='CCR', estado='COMPRA' where num_mt ='" & cod_memtec.Text & "'"
                Dim oComando As New SqlCommand(SSQL, conector4)
                dbopen4()
                oComando.ExecuteNonQuery()
                dbclose4()
            ElseIf Session.Item("usr_nombre") = "hmella" Then
                Dim SSQL As String = "update Tab_MemoriaTecnica set comprador_mt='HMC', estado='COMPRA' where num_mt ='" & cod_memtec.Text & "'"
                Dim oComando As New SqlCommand(SSQL, conector4)
                dbopen4()
                oComando.ExecuteNonQuery()
                dbclose4()
            ElseIf Session.Item("usr_nombre") = "pgodoy" Then
                Dim SSQL As String = "update Tab_MemoriaTecnica set comprador_mt='PGS', estado='COMPRA' where num_mt ='" & cod_memtec.Text & "'"
                Dim oComando As New SqlCommand(SSQL, conector4)
                dbopen4()
                oComando.ExecuteNonQuery()
                dbclose4()
            End If
            If cuenta_registros("select * from Tab_MemoriaTecnicadet where num_mt='" & cod_memtec.Text & "' and aprob=0") = 0 Then
                If cuenta_registros("select * from Tab_MemoriaTecnicadet where num_mt='" & cod_memtec.Text & "' and oc is null") = 0 Then
                    Dim SQL As String = "update Tab_MemoriaTecnica set estado='COMPLETA' where num_mt ='" & cod_memtec.Text & "'"
                    Dim oComando1 As New SqlCommand(SQL, conector3)
                    dbopen3()
                    oComando1.ExecuteNonQuery()
                    dbclose3()
                Else
                    Dim SQL As String = "update Tab_MemoriaTecnica set estado='PARCIAL' where num_mt ='" & cod_memtec.Text & "'"
                    Dim oComando1 As New SqlCommand(SQL, conector3)
                    dbopen3()
                    oComando1.ExecuteNonQuery()
                    dbclose3()
                End If
            Else
                If cuenta_registros("select * from Tab_MemoriaTecnicadet where num_mt='" & cod_memtec.Text & "' and oc is null and aprob=1") = 0 Then
                    Dim SQL As String = "update Tab_MemoriaTecnica set estado='COMPLETA' where num_mt ='" & cod_memtec.Text & "'"
                    Dim oComando1 As New SqlCommand(SQL, conector3)
                    dbopen3()
                    oComando1.ExecuteNonQuery()
                    dbclose3()
                End If
            End If
            'Reset the edit index.
            GridView1.EditIndex = -1
            Estado.Text = devuelve_codigo("select * from V_MemoriasTecnicas where num_mt='" & cod_memtec.Text & "'", "V_MemoriasTecnicas", "estado")
            If cod_memtec.Text <> "" Then
                cargagrid("V_MemoriasTecnicas", "select * from V_MemoriasTecnicas where num_mt=" & cod_memtec.Text, GridView1)
            Else
                cargagrid("V_MemoriasTecnicas", "select * from V_MemoriasTecnicas where num_mt=" & Session("rcod_mt"), GridView1)
            End If
        Else
            RegisterStartupScript("mensajes", mensaje("Debe seleccionar primero el registro ..."))
        End If
  #7 (permalink)  
Antiguo 18/05/2012, 09:40
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 5 meses
Puntos: 267
Respuesta: Problemas con GridView

Hola NicroX, dices que el error es en el UPDATE? podrías por favor mostrarnos el error que te muestra para saber mas con exactitud. Saludos!.

PDT: has esto en la linea que mencionas
Código vb:
Ver original
  1. Dim fila As Integer = e.RowIndex
  2.  cam = CType(GridView1.Rows(fila).Cells(5).Controls(0), TextBox).Text
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #8 (permalink)  
Antiguo 18/05/2012, 10:03
 
Fecha de Ingreso: abril-2012
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problemas con GridView

Cita:
Iniciado por Aquaventus Ver Mensaje
Hola NicroX, dices que el error es en el UPDATE? podrías por favor mostrarnos el error que te muestra para saber mas con exactitud. Saludos!.

PDT: has esto en la linea que mencionas
Código vb:
Ver original
  1. Dim fila As Integer = e.RowIndex
  2.  cam = CType(GridView1.Rows(fila).Cells(5).Controls(0), TextBox).Text
ahi funciono, muchas gracias por la ayuda.-


PD: Otra consulta tengo 10 columnas pero quiero modificar solo la columna 5, pero me aparecen las 10 para modificar, como lo puedo hacer para que las demas queden inhabilitadas para modificar
  #9 (permalink)  
Antiguo 18/05/2012, 10:13
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 5 meses
Puntos: 267
Respuesta: Problemas con GridView

Hola NicroX, pues del código que te pase casi lo mismo. Solo que esto ya iría en el evento Editing, ya que aqui te va a mostrar las cajas de texto y solo lo deshabilitas de esta manera :
Código vb:
Ver original
  1. Private Sub GridView1_RowEditing(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewEditEventArgs) Handles GridView1.RowEditing
  2.         If GridView1.SelectedIndex >= 0 Then
  3.             GridView1.EditIndex = e.NewEditIndex
  4.             GridView1.PageIndex = 0
  5.             If cod.Text <> "" Then
  6.                 cargagrid("V_M....", "select * from ......", GridView1)
  7.             Else
  8.                 cargagrid("V_M......", "select * from .......", GridView1)
  9.             End If
  10.             'Declaras textbox e inicializas con las celdas del datagrid
  11.            Dim caja1 As TextBox = CType(GridView1.Rows(fila).Cells(0).Controls(0), TextBox)
  12.             Dim caja2 As TextBox = CType(GridView1.Rows(fila).Cells(1).Controls(0), TextBox)
  13.             Dim caja3 As TextBox = CType(GridView1.Rows(fila).Cells(2).Controls(0), TextBox)
  14.             Dim caja4 As TextBox = CType(GridView1.Rows(fila).Cells(3).Controls(0), TextBox)
  15.             Dim caja5 As TextBox = CType(GridView1.Rows(fila).Cells(4).Controls(0), TextBox)
  16.             Dim caja6 As TextBox = CType(GridView1.Rows(fila).Cells(5).Controls(0), TextBox)
  17.             Dim caja7 As TextBox = CType(GridView1.Rows(fila).Cells(6).Controls(0), TextBox)
  18.             Dim caja8 As TextBox = CType(GridView1.Rows(fila).Cells(7).Controls(0), TextBox)
  19.             Dim caja9 As TextBox = CType(GridView1.Rows(fila).Cells(8).Controls(0), TextBox)
  20.             Dim caja10 As TextBox = CType(GridView1.Rows(fila).Cells(9).Controls(0), TextBox)
  21.             'Luego Deshabilitas a solo lectura a ReadOnly
  22.            caja1.ReadOnly = True
  23.             caja2.ReadOnly = True
  24.             caja3.ReadOnly = True
  25.             caja4.ReadOnly = True
  26.             caja5.ReadOnly = False 'Aqui le dices que no sea solo de lectura
  27.            caja6.ReadOnly = True
  28.             caja7.ReadOnly = True
  29.             caja8.ReadOnly = True
  30.             caja9.ReadOnly = True
  31.             caja10.ReadOnly = True
  32.         Else
  33.             RegisterStartupScript("mensajes", mensaje("Debe seleccionar primero el registro ..."))
  34.         End If
  35.     End Sub
Perdona por el código largo, pero es para que lo entiendas, esto aun se puede simplificar en menos líneas. Espero haber aclarado tu duda. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #10 (permalink)  
Antiguo 18/05/2012, 11:19
 
Fecha de Ingreso: abril-2012
Mensajes: 10
Antigüedad: 12 años, 7 meses
Puntos: 1
Respuesta: Problemas con GridView

muchas gracias me sirvió a la perfección

saludos.-
  #11 (permalink)  
Antiguo 18/05/2012, 11:22
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 5 meses
Puntos: 267
Respuesta: Problemas con GridView

Perfecto NicroX. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #12 (permalink)  
Antiguo 20/05/2012, 16:28
Avatar de lucord  
Fecha de Ingreso: marzo-2010
Ubicación: San Jose, Costa Rica
Mensajes: 87
Antigüedad: 14 años, 8 meses
Puntos: 10
Respuesta: Problemas con GridView

Excelente que hubo solución.

Gracias a ambos salu2.

Luis C.

Etiquetas: gridview, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:55.