none
No cambia el SelectedValue de un Drop Down List RRS feed

  • Pregunta

  • Hola a todos:

    Tengo una Pagina aspx en la que en el Page_Load lleno un DropDownList con los nombres de los usuarios sacados de la Base de datos y metidos en una DataTable.

    El código es el siguiente:

    String userSelected = User.Identity.Name; //reemplazar por el usuario logueado
    
            // Hace el enlace al DataTable contenido en el DataSet
            ddlResources.DataSource = BugNet.Business.User.GetList();
            // Hace el enlace del campo au_id para el valor
            ddlResources.DataValueField = "UserId";
            // Hace el enlace del campo au_fname para el texto
            ddlResources.DataTextField = "UserName";
            // Llena el DropDownList con los datos de la fuente de datos
            ddlResources.DataBind();
            ddlResources.Items.FindByText(userSelected).Selected=true;
    


    En la página, el usuario selecciona una fecha desde, una fecha hasta y un usuario del DropDownList.

    Mi problema es que cuando se ejecuta el evento click del botón, el SelectedValue, SelectedItem o SelectedIndex del DropDownList no cambian. Queda seteado el que se le dió en el método Page_Load y no he encontrado la manera de que seleccionando otro usuario en el DropDownList esos valores cambien.

    Los textBox de las fechas funcionan perfectamente y cambiando las fechas, cambian sus respectivos valores, pero no le he encontrado la vuelta al problema que tengo con ese DropDownList.

    El código del evento Click es este:

     protected void btnGoButton_Click(object sender, EventArgs e)
        {
    
            if (Page.IsValid)
            {
                String dateFrom = datepickerF.Text;
                String dateTo = datepickerT.Text;
                String userSelected = ddlResources.SelectedItem.Text;
    ......
    ......
    ......
    


    Desde ya les agradezco a todos por tomarse la molestia de ayudarme.

     

    Saludos!!!


    Leonardo Guidi C# Developer Junior "Un experto es alguien temeroso de aprender algo nuevo, pues dejaría entonces de ser un experto" (Harry S. Truman)
    miércoles, 16 de noviembre de 2011 13:32

Respuestas

  • en la que en el Page_Load lleno un DropDownList

    recuerda que si haces esto deberias ubicarlo dentro del if que valide el ispostback

     

    private void Page_Load(...){

        if(!IsPostBack){

            //aqui es donde cargas el DropDownList

        }

    }

    sino lo haces de esta forma e logico que en cada evento se perdera la seleccion, porque el Load de ejecuta en cada postback

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 16 de noviembre de 2011 13:38
  • Recuerde poner el código que llena el DropDownList dentro de un if(!IsPostBack).  Si no, cuando llame a DataBind() borrará el ViewState y la selección del usuario.
    Jose R. MCP
    • Marcado como respuesta Leonardo Guidi miércoles, 16 de noviembre de 2011 13:41
    miércoles, 16 de noviembre de 2011 13:38
    Moderador

Todas las respuestas

  • en la que en el Page_Load lleno un DropDownList

    recuerda que si haces esto deberias ubicarlo dentro del if que valide el ispostback

     

    private void Page_Load(...){

        if(!IsPostBack){

            //aqui es donde cargas el DropDownList

        }

    }

    sino lo haces de esta forma e logico que en cada evento se perdera la seleccion, porque el Load de ejecuta en cada postback

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    miércoles, 16 de noviembre de 2011 13:38
  • Recuerde poner el código que llena el DropDownList dentro de un if(!IsPostBack).  Si no, cuando llame a DataBind() borrará el ViewState y la selección del usuario.
    Jose R. MCP
    • Marcado como respuesta Leonardo Guidi miércoles, 16 de noviembre de 2011 13:41
    miércoles, 16 de noviembre de 2011 13:38
    Moderador
  • Muchísimas Gracias!
    Leonardo Guidi C# Developer Junior "Un experto es alguien temeroso de aprender algo nuevo, pues dejaría entonces de ser un experto" (Harry S. Truman)
    miércoles, 16 de noviembre de 2011 13:42