Buen día foro.
Tengo 3 dropdownlist dependientes de datos disponibles en la base de datos.
Con este codigo:
Código ASP:
Ver originalprotected void Page_Load(object sender, EventArgs e)
{
objeto_control_datos.control_acceso_directo();
/**
* Se recupera en la variable cod_usuario el codigo del usuario seleccionado.
* se realiza la consulta de todos los campos de la tabla y se cargan los datos correspondientes.
* en label_usuario se pone el codigo del usuario para evitar llamar nuevamente a la base de datos
al momento de actualizar la pagina.
* se acomoda la fecha utilizada de la base de datos en el formato yyyy-MM-dd.
* */
if (!IsPostBack)
{
objeto_control_datos.conectar_BD();
consultas.Clear();
consultas = objeto_control_datos.adaptar_datos("SELECT cod_usuario FROM usuarios WHERE log_usuario ='" + Session["login"].ToString() + "' OR mai_usuario ='" + Session["login"].ToString() + "'", consultas);
string prueba = Session["login"].ToString();
int cod_usu = int.Parse(consultas.Rows[0]["cod_usuario"].ToString());
consultas.Clear();
consultas = objeto_control_datos.adaptar_datos("SELECT e.cod_especie, nom_especie FROM especies e INNER JOIN permisos p ON e.cod_especie = p.cod_especie WHERE p.cod_usuario="+cod_usu+" ORDER BY nom_especie", consultas);
if (consultas.Rows.Count != 0)
{
/**
* Carga de Informacion de usuarios en combo_usuarios
1. Carga de usuarios disponibles. primero se adiciona la opcion seleccionar
con listitem y la propiedad AppendDataBoundsItems en true.
2. Terminar la conexion
* */
// 1.
ListItem reg = new ListItem("Seleccionar", "0");
combo_especie.Items.Add(reg);
combo_especie.AppendDataBoundItems = true;
combo_especie.DataSource = consultas;
combo_especie.DataValueField = "cod_especie";
combo_especie.DataTextField = "nom_especie";
combo_especie.DataBind();
}
consultas.Clear();
consultas = objeto_control_datos.adaptar_datos("SELECT cod_departamento, nom_departamento FROM departamento ORDER BY nom_departamento", consultas);
if (consultas.Rows.Count != 0)
{
/**
* Carga de Informacion de usuarios en combo_usuarios
1. Carga de usuarios disponibles. primero se adiciona la opcion seleccionar
con listitem y la propiedad AppendDataBoundsItems en true.
2. Terminar la conexion
* */
// 1.
ListItem reg = new ListItem("Seleccionar", "0");
combo_departamento.Items.Add(reg);
combo_departamento.AppendDataBoundItems = true;
combo_departamento.DataSource = consultas;
combo_departamento.DataValueField = "cod_departamento";
combo_departamento.DataTextField = "nom_departamento";
combo_departamento.DataBind();
}
else
{
label_clima.Visible = true;
label_clima.Text = "No es posible cargar los departamentos. Consulte el Administrador del sistema";
label_clima.ForeColor = System.Drawing.ColorTranslator.FromHtml("#993300"); //rojo
}
// 2.
objeto_control_datos.desconectar_BD();
}
}
Al seleccionar un departamento, se me despliegan los municipios de ese departamento. Al desplegar un municipio (En el onchange de municipio), se me despliega en otro dropdownlist las estaciones que tiene ese municipio.
Todo esto lo hago con ajax y me funciona de maravilla.
Sin embargo, cuando hago una selección y me dirijo a otra pagina posterior, cuando le doy en el navegador el botón atrás, estos combos quedan totalmente desorientados. Si escojo otro departamento me habilita los municipios del departamento seleccionado, pero vuelve y me pone el nombre en caché del departamento.
La verdad no se me ocurre como solucionarlo.
Agradecería una ayuda.
saludos