none
Rescatar Valor de DropDownList en Gridview RRS feed

  • Pregunta

  • Buenas.. nuevamente acudo a ustedes para ver si me pueden ayudar en lo siguiente: Tengo un gridview, el cual en 5 de sus columnas posee DropDownList para seleccionar distintos valores para luego guardarlos en la bdd. El tema es que no puedo rescatar el valor del DropDownList en el evento de guardar, lanzado por un boton. Adjunto codigo para ver si me ayudan:

    DropDownList Dentro del Gridview:
                        <asp:TemplateField HeaderText="Cuenta">
                        <ItemTemplate>
                            <asp:DropDownList ID="ddlCuenta" runat="server" Width="179px" DataTextField="cuenta" DataValueField="idcuenta"></asp:DropDownList>                                                                                                                
                        </ItemTemplate>
                        </asp:TemplateField>  
    Lleno el DropDownList en el evento RowDataBound:

                If e.Row.RowType = DataControlRowType.DataRow Then 'DataRow Vale las row que tienen datos, de esta manera se saltea el header,el footer y el pager
                    Dim ddl_1 As DropDownList
                    'Celda 1 es donde esta el DropdownList
                    Dim gvrow As GridViewRow = CType(e.Row.Cells(1).NamingContainer, GridViewRow)
                    ddl_1 = CType(gvrow.FindControl("ddlCuenta"), DropDownList)
    
                    If ddl_1 IsNot Nothing Then
                        ddl_1.ClearSelection()
                        If ddl_1 IsNot DBNull.Value Then
    
                            ddl_1.DataSource = serv_1.load_cuenta(0, 1)
                            ddl_1.DataTextField = "cuenta"
                            ddl_1.DataBind() 'Lleno el combo
                        End If
                        If flag = True Then
                            'si no esta vacio la hashtable se lo asigno al combo
                            If Not String.IsNullOrEmpty(ht.Item(1)) Then ddl_1.SelectedValue = ddl_1.Items.FindByText(ht.Item(1)).Value
                        End If
                    End If
                End If
    TODO BIEN HASTA AHI !!!!!

    el problema cuando quiero rescatar el valor:

    Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    
    Dim i As Integer = 0
    
           For Each row As GridViewRow In gdvLineas.Rows
    
                Dim ddl_1 As DropDownList = CType(row.FindControl("ddlCuenta"), DropDownList)
                Dim valor1 As Integer = ddl_1.SelectedValue
    
                i = i + 1
            Next
    
    End Sub
    ACA ME TRAE = 0

    Agradezco su ayuda!!!
    jueves, 12 de noviembre de 2009 14:36

Respuestas

  • ERROR CAPA 8 !!!!

    Efectivamente el codigo esta correcto:

    Dim ddl_1 As DropDownList = CType(row.FindControl("ddlCuenta"), DropDownList)
    
                Dim valor1 As Integer = ddl_1.SelectedValue ( ddl_1.SelectedItem.Value) 

    Trae el valor requerido.....
    El problema estaba originado en:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            gdvLineas.DataBind()

    End Sub

    SIN COMENTARIOS!!!!

    Saludos!

    • Marcado como respuesta StonedRaider jueves, 12 de noviembre de 2009 15:05
    jueves, 12 de noviembre de 2009 15:05

Todas las respuestas

  • hola

    prueba con

    Dim ddl_1 As DropDownList = CType(row.FindControl("ddlCuenta"), DropDownList)
    Dim valor1 As Integer = ddl_1.SelectedItem.Value


    en varios ejemplos que vi note que usabas esta forma, por ahi esto lo resulve, el resto parece estar correcto


    Accessing DropDownLists inside the GridView Control

    - el caste del FindControl() es correcto, no obtienes ningun error?

    saludos
    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    jueves, 12 de noviembre de 2009 14:51
  • ERROR CAPA 8 !!!!

    Efectivamente el codigo esta correcto:

    Dim ddl_1 As DropDownList = CType(row.FindControl("ddlCuenta"), DropDownList)
    
                Dim valor1 As Integer = ddl_1.SelectedValue ( ddl_1.SelectedItem.Value) 

    Trae el valor requerido.....
    El problema estaba originado en:

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            gdvLineas.DataBind()

    End Sub

    SIN COMENTARIOS!!!!

    Saludos!

    • Marcado como respuesta StonedRaider jueves, 12 de noviembre de 2009 15:05
    jueves, 12 de noviembre de 2009 15:05