Tengo una aplicación web ASP.NET 2.0 que se navega parcialmente usando los controles DropDownList
. Cuando se modifica uno de ellos, provoca una devolución de datos, que luego se redirige a otra URL según lo que se eligió en el menú desplegable.Postback de ASP.NET desde una lista desplegable incorrecta después de usar el botón Atrás del navegador
He notado un comportamiento extraño al usar el botón Atrás del navegador después de usar las listas desplegables. El procedimiento es el siguiente:
- Realice una selección en uno de los menús desplegables, generando una devolución de datos y redirigiendo. Bien hasta ahora.
- Haga clic en el botón Atrás del navegador.
- En otro menú desplegable de navegación debajo del utilizado antes de (están todos contenidos en un
div
), haga una selección. La página redirige a la misma URL que la primera vez, no a la que debería redireccionar según este otro menú desplegable.
He intentado esto tanto en Firefox 10 como en IE9 y he visto lo mismo. Miré la pestaña Red en Firebug y vi que en el POST para el paso 3, se hace referencia al control correcto. Pero cuando lo depuro, se desencadena el controlador de eventos para el menú desplegable incorrecto (el utilizado en el paso 1).
El código es bastante simple y directo. Ejemplo de marcado:
<asp:DropDownList runat="server" ID="ddlTest" AutoPostBack="true" />
Los menús desplegables en realidad no son sencillas <asp:DropDownList ... />
elementos; Estoy insertando elementos optgroup
con un enfoque similar a this.
Ejemplo de C#:
ddlTest.Click += new EventHandler(ddlTest_SelectedIndexChanged);
Y en ddlTest_SelectedIndexChanged
:
if (ddlTest.SelectedValue != "")
{
Response.Redirect(MyUtilClass.GetUrl(ddlTest.SelectedValue));
}
¿Qué está pasando aquí?
ACTUALIZACIÓN 2/6/2012: Me he fijado mediante la comprobación del contenido de Request["__EVENTTARGET"]
en mis SelectedIndexChanged
controladores de eventos. Todavía tengo curiosidad de por qué sucede, sin embargo. ¿Por qué se repite el primer evento? ¿Y por qué solo ocurre cuando la segunda devolución de datos ocurre desde un control debajo del primero?
¿Puedes agregar las etiquetas de la página para las listas desplegables? Ayudaría. –
Las etiquetas para las listas desplegables? ¿Te refieres a sus identificaciones en la página? ¿O su marcado? Se parece mucho al marcado que publiqué en la pregunta. –
Solo una sugerencia: su Nav no muestra lo que llamaría comportamiento esperado incluso sin utilizar el botón Atrás. Por lo general, se supone que la navegación se sincroniza con su contenido. De modo que cuando haga clic en el nombre de una escuela, esa escuela se seleccionará en su menú desplegable. En realidad, cuanto más lo veo, más se siente * apagado *. Como si pudieras deshacerte de todo el sistema de navegación izquierdo (capturando ese inmueble de vuelta) y proporcionar dos menús desplegables en la parte superior: la escuela y el deporte. Los demás dependen completamente de esa información de todos modos ... $ 0.02 por lo que vale. – NotMe