Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/04/2013, 16:59
Avatar de Faunel
Faunel
 
Fecha de Ingreso: abril-2013
Ubicación: Valencia, España
Mensajes: 4
Antigüedad: 11 años, 1 mes
Puntos: 0
Pregunta Como evitar el refresco de pagina luego de un SelectedValueChange de un DropDownList

Hola y primero que nada felicitar esta comunidad que me ha sido de mucha ayuda.

Tengo un problema y desde hace un par de semanas no he logrado resolverlo, tengo la siguiente estructura de controles:



Consiste en un GridView anidado dentro de un FieldTemplate de otro GridView, como se muestra en la imagen, el desafío CHA42 se repite en las Practicas PRA01 y PRA23.

Lo que hago es consultando un valor en una columna oculta del GridView si el desafío es independiente de la practica cuando el usuario cambie el valor del DropDownList del desafio CHA42 en una practica debo poner ese mismo valor en todas las practicas donde aparezca ese desafío.

El código que estoy usando es el siguiente:

Código:
Protected Sub DDL0_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
        Dim indice As Integer = CType(CType(sender, DropDownList).Parent.Parent.Parent.Parent.Parent.Parent, GridViewRow).RowIndex
        Dim IdDesafio As Integer = Val(CType(CType(sender, DropDownList).Parent.Parent.FindControl("Label6"), Label).Text)

        'Dim Dependiente As Boolean = CType(CType(sender, DropDownList).Parent.Parent.FindControl("CB_Dependiente"), CheckBox).Checked
        Dim dp As String = CType(CType(sender, DropDownList).Parent.Parent.FindControl("Label8"), Label).Text

        Dim valor As Integer = CType(sender, DropDownList).SelectedValue
        Dim gvHijo As New GridView


        If Not dp = "True" Then
            For i As Integer = 0 To GridView4.Rows.Count - 1
                If i <> indice Then
                    gvHijo = CType(GridView4.Rows(i).FindControl("GridView6"), GridView)
                    For ii As Integer = 0 To gvHijo.Rows.Count - 1
                        If IdDesafio = Val(CType(gvHijo.Rows(ii).FindControl("Label6"), Label).Text) Then
                            DirectCast(gvHijo.Rows(ii).FindControl("DDL0"), DropDownList).SelectedValue = valor
                        End If
                    Next
                End If
            Next
        End If

        SetFocus(DirectCast(sender, DropDownList))
    End Sub
End Class
Este código FUNCIONA, pero me refresca toda la pagina y cuando son muchas practicas pues es muy molesto para los usuarios, He intentado usar ScriptManager y UpdatePanels pero si pongo el GridView padre dentro de un UpdatePanel, al cambiar el valor no pasa NADA, no se ejecuta el Codebehind.

De verdad que agradecería cualquier ayuda para obtener el resultado que quiero sin el refresco de pagina.

Gracias de Antemano

Un Saludo