Tengo un jquery accordion en un asp.net aspx weppage. En el interior de los paneles, he asp.net los botones. Cuando hago clic en el botón, el panel de la que yo estaba, se cierra y se vuelve a cargar la página, por defecto el primer panel. No me importa la recarga, pero hay una manera para mantener el actual panel de abrir después de la recarga. Ahora, me acaba de llamar el acordeón() en un div con el id de acordeón.
Usted podría utilizar un oculto campo de entrada para conservar el activo acordeón índice durante las devoluciones de datos y, a continuación, rellenar el uso de javascript durante el evento de cambio del acordeón.
Que probablemente podría venir para arriba con una manera más eficiente de capturar el índice activo durante el evento de cambio, pero esto parece funcionar.
Cuando se haya cargado la página, se recupera el índice activo desde el campo oculto y lo almacena en una variable. Luego se inicializa el acordeón utilizando la lista de índice y una función personalizada para el fuego en el evento de cambio que escribe un nuevo índice para el campo oculto cada vez que un nuevo panel está activado.
Durante una devolución de datos, el campo oculto valor se conserva en el ViewState de modo que cuando la página se carga de nuevo el acordeón es inicializado con el índice del último panel se hace clic sobre.
MaxCarey la solución que parece funcionar bien, pero la última versión de jQuery interfaz de usuario (1.10.4) parece haber algunas diferencias. El evento correcto no es «cambiado» ahora, pero «activar» (o «beforeActivate», si desea que la opción de cancelar el evento).
El gotcha para mí, es que yo pueda comprobar que el hidAccordionIndex valor se establece en el valor correcto, pero en la devolución de datos, se establece a 0 no importa lo que yo trato. He tratado de ajuste a una cadena vacía, como Dave.Lebr1 sugerido, pero todavía no es persistente en la devolución de datos.
Este debe estar disponible en la devolución de datos, ya que mi divAccordionIndex campo debe tener ViewState (he comprobado que está habilitado).
Ha nadie tenido éxito con esto? Este menú está en mi página principal, y funciona muy bien…aparte de este.
escribir índice o la identificación de acordeón panel en el que se pulsó el botón utilizando
ClientScript.RegisterStartupScript
. Supongamos usuario hace clic en el botón denominadobtnSubmit
que está en el panel 3. Entonces como esto:ahora en javascript:
Sé que es tarde, pero todavía se puede ayudar a alguien que esté luchando con esto. La solución aquí es básicamente una combinación de algunos de los anteriores sabiduría. 😉
Estoy usando jquery-ui-1.10.4.custom.min.js
y jquery-1.6.3.min.js.
y aquí es el javaScript:
De expansión en el anterior HiddenField ideas, pero sin tener que destrozar tu JS:
En su página:
En su JS:
La clave es ClientIDMode=»Static». Este enfoque es llevar a los pequeños de la modificación a trabajar con casi cualquier lenguaje en el servidor debido a que el JS no tiene que cambiar, sólo un campo oculto.
Es el trabajo de mi lado por Favor consulte……
Poner el botón o gridview que puede tiene que hacer clic o actualizado en un panel de Actualización. Luego de interfaz de usuario acordeón le funciona bien al 100% + garantía.. [email protected]
Usar la opción «activo» al crear el acordeón. Algo como esto:
Esto activará la segunda opción en el acordeón. También puede pasar un selector para seleccionar por id.
Configuración de la
navigation
propiedadtrue
conservará el estado del panel acordeón.Para agregar a MaxCarey del post…
Una manera más confiable para obtener el nuevo acordeón índice es
Yo tenía el mismo problema que vine aquí.
1. MaxCarey respuesta fue buena pinta lo suficiente para resolver el problema, pero por desgracia no tuve la ID de mi acordeones. (Yo estaba usando una tercera parte de la plantilla, que acaba de usar css de la clase).
2. Imran H. Ashraf también era bueno, pero con el mismo problema de no tener acceso al acordeón por ID.
Mi Problema:
1. Yo tenía un DetailsView en un acordeón con la Edición de Actualización de Cancelar el comando.
2. Cuando hago clic en el botón Editar que funciona, pero mi acordeón cerrado.
Mi Solución:
1. He puesto una ScriptManager en mi formulario.
2. Puse un UpdatePanel dentro de mi acordeón.
3. Puse mi DetailsView dentro del UpdatePanel.
4. Eso es, sin códigos, sin el código y funciona bien.
Aquí es el lenguaje de marcado html:
La esperanza de que podría ayudar a alguien.
Gracias
Feliz Codificación
Yo use esta solución para hacer que funcione en mi proyecto, pero algo no estaba funcionando.
Primero, el acordeón no mantener el índice en la memoria para que el acordeón se reinicializar cada momento.
En segundo lugar, yo era incapaz de encontrar el campo oculto con el
'#<%=hidAccordionIndex.ClientID %>'
Así, yo lo que hago es
1 – Establecer el Campo Oculto valor predeterminado es null
2 – Obtener el índice activo con este
Asegúrese de parseInt, de lo contrario no funcionará
No es mi código javascript :