2010-04-21 7 views
7

Estoy usando Master Page en mi aplicación ASP.net, en la página maestra puse un ContentPlaceHolder en el Panel de actualización para admitir AJAX en páginas secundarias, la pregunta es ¿cómo detener Actualizar "controles de página maestra" mientras navegas entre páginas?Actualización de la página Stop Master mientras navega entre las páginas?

Para la navegación entre las páginas que trataron de utilizar Response.Redirect , windows.location java script sin éxito, he de utilizar los marcos o iframes en lugar de páginas maestras para detener refrescante?

cualquier sugerencia para resolver este problema será altamente apreciado, gracias por adelantado ...

Respuesta

5

Si no desea que la página se actualice al cambiar entre "páginas", no tendrá ninguna solución buena utilizando la página maestra. Como otros han dicho en otras palabras, la página maestra es simplemente una "plantilla" común que utilizan distintas páginas.La navegación entre ellos es como llamar a diferentes páginas y, por supuesto, volverá a cargar toda la página, incluido el contenido de la página maestra.

  1. Un sollution he utilizado con el Ajax es tener cada "página" como un usuario controles, y poner a todos en un UpdatePanel con visible="false". Luego, para navegar entre "páginas", cambie visibilidad para los controles de usuario para mostrar el control de "página" correcto.

  2. La alternativa es usar iframe.

Ninguna de estas soluciones utiliza MasterPage.

El concepto de MasterPage se diseñó para simplificar una apariencia común antes de que se introdujera Ajax en ASP.NET. Después de que Ajax se hizo popular, la demanda de no actualizar toda la página ha sido más común.

+0

Gracias por su publicación, probé la primera solución sin poner todos los controles en la página, en lugar de crear los controles en tiempo de ejecución, esto mucho más rápido y mejor, :(finalmente cambié a Marcos porque había muchos problemas sucedió en el código Java Script. Ahora Frames resolvió este problema para usted gracias por todo. –

1

Tener una estructura como la que ha explicado:

  • Maestro
    • página Niño 1
    • página niño 2
    • ...

Luego no puede evitar que la página se actualice al cambiar de la página 1 a la página 2, etc. ya que tiene una única entidad "página" (contenido principal + contenido de página seleccionado) cuando se procesa en el navegador.

Si desea cambiar entre diferentes vistas de la aplicación dentro de la misma página (para evitar una actualización completa de la página) puede usar una sola página (el maestro se vuelve bastante inútil) con un panel de actualización en el que carga las diferentes vistas .

También puede usar iFrames, pero si tiene que manejar cualquier tipo de comunicación entre diferentes partes de la página (algunas de las cuales están dentro de iFrames), yo personalmente aconsejaría no usarlas.

+0

Gracias, ¿cómo puedo usar UpdatePanel con diferentes vistas? ¿Puedes explicar más ... –

+0

Puedes usar el control de Pestañas, por ejemplo. http://www.asp.net/ajax/ajaxcontroltoolkit/samples/tabs/tabs.aspx Pero depende del efecto que desee lograr y del diseño visual de la aplicación. – mamoo

2

Una página maestra no es más que ampliar su página "normal" con (la mayoría de las veces) el diseño predeterminado de su aplicación. La página maestra y los marcadores de contenido se muestran como una página html completa. Cuando navega entre páginas, es el comportamiento normal que actualiza toda su página. Así es como funciona la web.

Trabajar con un iframe podría resolver su problema. Sin embargo, eso tiene algunos otros efectos secundarios:

  1. Toda la página maestra ya no es útil. El contenido alrededor de su iframe es la "página maestra".

  2. Con una página maestra que realmente navega a otra url, también se ve en la barra de direcciones de su navegador. Cuando trabajas con un iframe, navegas dentro del iframe a otra página. La url en su navegador se mantendrá igual. Cuando el usuario de la aplicación pulsa el botón de actualización, siempre comienza de nuevo en la página predeterminada que asignó a su iframe en el html. Por supuesto, hay algunas soluciones

De todos modos. Realmente depende de tu aplicación. Hay varias soluciones para evitar el comportamiento de actualización.

+0

Gracias, en realidad resolví el problema refrescante mediante el uso de marcos, pero estoy buscando otra manera de resolver este problema, imagine que tiene la barra de navegación en el lado izquierdo y las páginas en el lado derecho de la página, quiero al hacer clic cualquier elemento en NavBar para no publicar la página del agujero. –

+0

No es una devolución de datos. Simplemente solicita otra URL y el servidor le devuelve un montón de html que es procesado por el navegador. ¿Cuál es su mayor problema/preocupación cuando se trata de todo el refrescante? – Joop

+0

El problema es que está recargando el logotipo y la barra de navegación y pie de página, causando lentitud en el sitio web, el requisito es hacer que el sitio web sea lo más que podamos como aplicación de Windows, y esto no se puede hacer sin el soporte total de Ajax. –

Cuestiones relacionadas