none
Problema con GridView en asp.net RRS feed

  • Pregunta

  • Hola, tengo 2 griview en una pagina, ambas muestran los mismos campos y en ambas se pueden editar los mismos campos (textbox con distintos nombres).

    La segunda gridview esta en un div oculto que muestro al momento de hacer click en un ButtonField de la primera grilla, asi en la segunda grilla muestro el detalle del registro de la primera grilla.

    En la segunda grilla, cuando quiero editar un dato lo puedo hacer sin problemas (la caja de texto se llama txtControl).

    Pero en la primera grilla, cuando edito, me muestra la caja de texto llamada txtControl1, puedo ingresar el nuevo, pero al dar click en el link Actualizar, me da un error, no me encuentra el control txtControl1, lo raro está que antes de agregar la segunda grilla todo el código funcionada perfectamente.

    Este es el error que me arroja "Object reference not set to an instance of an object." al momento de ejecutar la siguiente instruccion
    nProyPesos = CType(row.FindControl("txtControl1"), TextBox).Text

    Este es el código del evento RowUpdating

        Protected Sub Grid1_RowUpdating(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles Grid1.RowUpdating
            Dim row As GridViewRow = Grid1.Rows(e.RowIndex)
            Dim nProyPesos, nProyPor As String

            Dim nValor As Double
            If txtIpc.Text = "" Then
                nValor = objInforme.mtdObtenerIpc(cboMesIpc.SelectedItem.Value)
                txtIpc.Text = nValor
            Else
                nValor = txtIpc.Text
            End If
            'nValor = 1
           
            nProyPesos = CType(row.FindControl("txtControl1"), TextBox).Text
            nProyPor = CType(row.FindControl("txtProyPor1"), TextBox).Text
            nProyPesos = nProyPesos.Replace(",", ".")
            nProyPor = nProyPor.Replace(",", ".")
            If (CType(row.FindControl("txtItem2"), TextBox).Text = "") Then
                nItem = CType(row.FindControl("txtItem3"), TextBox).Text
            Else
                nItem = CType(row.FindControl("txtItem2"), TextBox).Text
            End If

            If (CType(row.FindControl("hdnTipo1"), HiddenField).Value = 1) Then
                'MsgBox("Pesos")
                objInforme.mtdUpdateDetalle(cboLocal.SelectedItem.Value, cboMes.SelectedItem.Value, cboAnho.SelectedItem.Value, nItem, nProyPesos)
            End If
            If (CType(row.FindControl("hdnTipo1"), HiddenField).Value = 2) Then
                'MsgBox("Porcentaje")
                objInforme.mtdUpdateDetalle(cboLocal.SelectedItem.Value, cboMes.SelectedItem.Value, cboAnho.SelectedItem.Value, nItem, nProyPesos)
            End If
            nItem = Session("nItem")

            Grid2.DataSource = objInforme.mtdObtenerInformeDetalle(cboMes.SelectedItem.Value, cboAnho.SelectedItem.Value, sRutaDetalle, nValor, cboLocal.SelectedItem.Value, nItem)
            Grid2.EditIndex = -1 'set to no selection 
            Grid2.DataBind()

            Grid1.DataSource = objInforme.mtdGetData(sRutaLocal)
            Grid1.EditIndex = -1
            Grid1.DataBind()
        End Sub

    Por favor si alguien me puede ayudar a encontrar el error, estaría muy agradecido.

    saludos y gracias,
    Felipe Saavedra
    martes, 12 de mayo de 2009 16:09

Respuestas