none
llenar un dropdownlist en runtime RRS feed

  • Pregunta

  • Hola, estoy llenando un dropdownlist en runtime de la siguiente manera:

     

     

    Using connection As New System.Data.SqlClient.SqlConnection(conexion)

    Dim command As New System.Data.SqlClient.SqlCommand(queryString, connection)

     

     

    Try

    connection.Open()

     

     

    Dim reader As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()

    ddlCursos.Items.Add(

     

    "...............")

    ddlCursos.Items(0).Value =

     

    ""

     

     

    Do While reader.Read()

     

     

    Dim NewItem As New ListItem

    NewItem.Text = reader.Item(1).ToString

    NewItem.Value = reader.Item(0).ToString

    ddlCursos.Items.Add(NewItem)

     

     

    Loop

     

     

    Catch ex As Exception

     

     

    'MsgBox(ex.Message)

     

     

    Finally

    connection.Close()

     

     

    End Try

     

     

    End Using

    Se llena bien, pero por alguna razón no puedo acceder al valor del item seleccionado, en el método SelectedIndexChanged he puesto un mensaje para saber si entra a este evento al cambiar de item y nada....no puedo obtener el valor del item seleccionado.

    :S

    Gracias

    viernes, 27 de agosto de 2010 16:54

Respuestas

  • hola

    mira ste articulo

    ComboBox - DropDownList – Opción “Todos”

    veras que alli tabie se define un item por defecto para la seleccion e todos, pero se usa un datatable y se definen las propiedades DataTextField y DataValueField estasson las que hacen que especifiques que valor retorna en el SelectedValue

    prueba de aplciar la misma tecnica a ver como resulta

    alg que no esta en el articulo y puede influir es que si cargas los item en el Page_load lo hagas dentro de bloque Not IsPostBack

    If Not IsPostBack Then

       ' aqui cargas el combo

    End If

    ya que ante el potback sino se recargara los items y perderas la seleccion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 27 de agosto de 2010 17:13
  • hola

    cuando dices "no puedo obtener el valor", que seria exactamente lo que obtienes cuando accedes a la propiedad SelectedValue del control ? obtienss un valor incorrecto o un error ?

    usar el sqldatasource tampoco estaria mal y si agregas

    <asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="true" >
         <asp:ListItem Value="0">&lt;Seleccione un Item&gt;</asp:ListItem>
    </asp:DropDownList>

    al control podras obtener tu item extra para definir un valor no seleccionado por el usuario

     

    ¿Qué diferencia hay entre llenarlo así o llenarlo en runtime? ¿El performance?

    en realidad no lo veria por un tema de performance, sino mas bien de prolijidad en el codigo, y de desarrollarlo de una forma standar, por lo general asignar el DataSource con los datos es lo comun al programar este control

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 28 de agosto de 2010 1:59

Todas las respuestas

  • hola

    mira ste articulo

    ComboBox - DropDownList – Opción “Todos”

    veras que alli tabie se define un item por defecto para la seleccion e todos, pero se usa un datatable y se definen las propiedades DataTextField y DataValueField estasson las que hacen que especifiques que valor retorna en el SelectedValue

    prueba de aplciar la misma tecnica a ver como resulta

    alg que no esta en el articulo y puede influir es que si cargas los item en el Page_load lo hagas dentro de bloque Not IsPostBack

    If Not IsPostBack Then

       ' aqui cargas el combo

    End If

    ya que ante el potback sino se recargara los items y perderas la seleccion

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    viernes, 27 de agosto de 2010 17:13
  • Gracias Leandro, si lleno el drop :

    If Not IsPostBack Then

       ' aqui cargas el combo

    End If

    Se llena bien, pero no puedo obtener el valor, ya lei tu artículo pero sigo sin poder sacar el valor, si utilizo un sqldatasource funciona excelente, sin embargo, quisiera llenarlos en runtime, sin embargo, si no se puede, lo hare usando el sqldatasource, otra pregunta, ¿Qué diferencia hay entre llenarlo así o llenarlo en runtime? ¿El performance?

    Espero haberme explicado bien :)

     

     

    viernes, 27 de agosto de 2010 18:36
  • hola

    cuando dices "no puedo obtener el valor", que seria exactamente lo que obtienes cuando accedes a la propiedad SelectedValue del control ? obtienss un valor incorrecto o un error ?

    usar el sqldatasource tampoco estaria mal y si agregas

    <asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="true" >
         <asp:ListItem Value="0">&lt;Seleccione un Item&gt;</asp:ListItem>
    </asp:DropDownList>

    al control podras obtener tu item extra para definir un valor no seleccionado por el usuario

     

    ¿Qué diferencia hay entre llenarlo así o llenarlo en runtime? ¿El performance?

    en realidad no lo veria por un tema de performance, sino mas bien de prolijidad en el codigo, y de desarrollarlo de una forma standar, por lo general asignar el DataSource con los datos es lo comun al programar este control

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    sábado, 28 de agosto de 2010 1:59
  • hola,

     

    Amigo fue posible tu solucion.... ?

     

    enmanuel grullard

    republica dominicana

     

    sábado, 28 de agosto de 2010 17:02
    Moderador