¿Cómo cambiar el color de la fila cuando el valor de la lista desplegable se vuelve a seleccionar a la opción predeterminada ("Seleccionar")?

Tengo una vista de cuadrícula con el campo de plantilla de la lista desplegable en cada fila. Todas las listas desplegables están configuradas con el valor predeterminado "Seleccionar". Cuando selecciono cualquier valor de la lista desplegable, cambiará el color de la tercera fila debajo, pero cuando vuelvo a seleccionar "Seleccionar" opción, el color todavía está allí en la tercera fila. No lo necesito. Debe cambiarse al color predeterminado de la vista de cuadrícula que es blanco. Este es mi código.

protected void GridView1_SelectedIndexChanged(object sender,EventArgs e)
    {

       DropDownList ddl = (DropDownList)sender;
        GridViewRow row = (GridViewRow)ddl.NamingContainer;

        int g = row.RowIndex + 3;
        int current_row_index = row.RowIndex;
        foreach (GridViewRow gvRow in GridView1.Rows)
        {

            gvRow.BackColor = Color.White;

           if (gvRow.FindControl("dropdownid") != null && gvRow.RowIndex != current_row_index)
            {
                ((DropDownList)gvRow.FindControl("dropdownid")).SelectedIndex = 0;
            }
             }

             GridView1.Rows[g].BackColor = Color.Red;

         }

preguntado el 31 de julio de 12 a las 11:07

Para atraer más respuestas, debe agregar una etiqueta correspondiente al idioma o las herramientas que está utilizando. Puedes hacer eso por editando tu pregunta y agregar etiquetas en la parte inferior de la página de edición. -

1 Respuestas

Resuelto. Hice los siguientes cambios en el código y funciona bien.

 protected void GridView1_SelectedIndexChanged(object sender,EventArgs e)
    {

       DropDownList ddl = (DropDownList)sender;
        GridViewRow row = (GridViewRow)ddl.NamingContainer;
        int count=0;
        int g = row.RowIndex + 3;
        int current_row_index = row.RowIndex;
        foreach (GridViewRow gvRow in GridView1.Rows)
        {

            gvRow.BackColor = Color.White;
            if (((DropDownList)gvRow.FindControl("dropdownid")).SelectedIndex != 0)
            {
               // GridView1.BackColor = Color.Yellow;
                count++;

                Response.Write("null");

            }

           if (gvRow.FindControl("dropdownid") != null && gvRow.RowIndex != current_row_index)
            {
                ((DropDownList)gvRow.FindControl("dropdownid")).SelectedIndex = 0;
            }
             }



             GridView1.Rows[g].BackColor = Color.Red;
              Response.Write("count="+count);

              if (count == 0)
              {
                  foreach (GridViewRow gvRow in GridView1.Rows)
                  {
                      gvRow.BackColor = Color.White;

                  }

              }

         }

Respondido 31 Jul 12, 12:07

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.