none
Seleccionar un elemento de un dropdownlist por medio de un gridview RRS feed

  • Pregunta

  • Hola mi duda es cómo puedo actualizar el valor de un dropdownlist a través de un gridview que al ser seleccionado un renglón este se pase al item correspondiente de mi dropdownlist.

    Tengo este código dentro del evento SelectedIndexChanged de mi gridview pero los items no se actualizan:

    protected void gvresultados_SelectedIndexChanged(object sender, EventArgs e)
        {

            if (gvresultados.SelectedRow.Cells[9].Text == "Pagado")
            {
                ddlestatusnew.SelectedIndex = 1;
            }
            else if (gvresultados.SelectedRow.Cells[9].Text == "Por vencer")
            {
                ddlestatusnew.SelectedIndex = 2;
            }
            else if (gvresultados.SelectedRow.Cells[9].Text == "Vencido")
            {
                ddlestatusnew.SelectedIndex = 3;
            }

    martes, 8 de noviembre de 2016 23:43

Respuestas

  • Hola Edith45,

    Tal véz no esté tomando ninguno de esos valores, ya que no asignas un else (por si no coincide en ningún if), además si has agregado una columna 'Seleccionar' mediante AutoGenerateSelectButton este ocuparía la columna 0 y los demás tendrían un índice diferente.

     protected void gvresultados_SelectedIndexChanged(object sender, EventArgs e)
            {
                int indice = 0;
    
                switch (gvresultados.SelectedRow.Cells[9].Text)
                {
                    case "Pagado": indice = 1; break;
                    case "Por vencer": indice = 2; break;
                    case "Vencido": indice = 3; break;
                    //Agregar default si es necesario
                }
    
                ddlestatusnew.SelectedIndex = indice;
            }

    Agrega un punto de interrupción y verifica el valor que está tomando, o simplemente podrías agregar un 'alert' para visualizar el dato a comparar :

    protected void gvresultados_SelectedIndexChanged(object sender, EventArgs e)
            {
                string estado = gvresultados.SelectedRow.Cells[9].Text;
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                    "alert", string.Format("alert('{0}')", estado), true);
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 9 de noviembre de 2016 0:43

Todas las respuestas

  • Hola Edith45,

    Tal véz no esté tomando ninguno de esos valores, ya que no asignas un else (por si no coincide en ningún if), además si has agregado una columna 'Seleccionar' mediante AutoGenerateSelectButton este ocuparía la columna 0 y los demás tendrían un índice diferente.

     protected void gvresultados_SelectedIndexChanged(object sender, EventArgs e)
            {
                int indice = 0;
    
                switch (gvresultados.SelectedRow.Cells[9].Text)
                {
                    case "Pagado": indice = 1; break;
                    case "Por vencer": indice = 2; break;
                    case "Vencido": indice = 3; break;
                    //Agregar default si es necesario
                }
    
                ddlestatusnew.SelectedIndex = indice;
            }

    Agrega un punto de interrupción y verifica el valor que está tomando, o simplemente podrías agregar un 'alert' para visualizar el dato a comparar :

    protected void gvresultados_SelectedIndexChanged(object sender, EventArgs e)
            {
                string estado = gvresultados.SelectedRow.Cells[9].Text;
                ScriptManager.RegisterClientScriptBlock(this, this.GetType(),
                    "alert", string.Format("alert('{0}')", estado), true);
            }

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    miércoles, 9 de noviembre de 2016 0:43
  • Gracias por el consejo Joel, debuggeando descubrí un problema de origen en la base de datos lo que causaba que no coincidieran los valores y por ello no se colocaba el índice correspondiente :P

    Saludos!


    edith

    sábado, 12 de noviembre de 2016 1:07