Toda la página se actualiza aunque la vista de cuadrícula esté en un panel de actualización

StackOverflow https://stackoverflow.com/questions/34798

Pregunta

Tengo una vista de cuadrícula que está dentro de un panel de actualización para una ventana emergente modal que tengo en una página.
El problema es que toda la página se actualiza cada vez que hago clic en un botón de imagen que está dentro de mi vista de cuadrícula.Esto hace que se cargue toda mi página y como he atenuado el resto de la página para que el usuario no pueda hacer clic en ella, esto es muy molesto.

¿Alguien sabe lo que me estoy perdiendo?

Editar: Ingresé una mejor solución en la parte inferior.

¿Fue útil?

Solución 5

Varios meses después se solucionó este problema.El proyecto en el que estaba trabajando era una versión anterior 1.1 que se convirtió a 2.0.Sin embargo, en web.config esta línea permaneció:

<xhtmlConformance mode="Legacy"/>

Cuando se comentó, todos los errores que parecíamos tener con el kit de herramientas de control ajax desaparecieron.

Otros consejos

Asegúrese de tener lo siguiente configurado en UpdatePanel:ChildrenAsTriggers=falso y UpdateMode=Condicional

¿Tiene ChildrenAsTriggers="false" en UpdatePanel?

¿Hay algún error de JavaScript en la página?

Tuve este problema y encontré el siguiente artículo:

http://bloggingabout.net/blogs/rick/archive/2008/04/02/linkbutton-inside-updatepanel-results-in-full-postback-updatepanel-not-triggered.aspx

Mi botón no se creó dinámicamente en el código como en este ejemplo, pero cuando verifiqué el código en aspx, efectivamente faltaba una propiedad de ID.Al agregar el ID, la devolución de datos se volvió asincrónica y comenzó a comportarse como se esperaba.

Entonces, en resumen, ¡compruebe que su botón tenga una identificación!

¿Estás probando en Firefox o IE?Tenemos un problema similar en el que se actualiza toda la página en Firefox (pero no en IE).Para evitarlo utilizamos un botón asp: oculto con el conjunto useSubmitBehavior="false".

<asp:Button ID="btnRefresh" runat="server" OnClick="btnRefresh_Click" Style="display: none" UseSubmitBehavior="false" />

¿Aparece la ventana modal usando la ventana modal de IE?¿O es un DIV lo que estás mostrando?

Si se trata de una ventana emergente modal de IE, debes asegurarte de tener

   <base target="_self" /> 

Para asegurarse de que la publicación regrese a la página modal.

Si es un DIV, asegúrese de tener su XHTML correcto o es posible que no sepa qué actualizar.

Dejaría onClick y lo configuraría como activador para updatePanel.

Es extraño que funcione en FF y no en IE.Eso es lo opuesto al comportamiento que experimentamos.

UpdatePanels puede ser sensible a HTML con formato incorrecto.Haga una Ver código fuente desde su navegador y ejecútelo a través de algo como el validador W3C para buscar cualquier cosa extraña (los div o tablas no cerrados son los sospechosos habituales)

Si usa Firefox, hay una extensión/complemento de validación HTML disponible que funciona bastante bien.

Para referencia..

También he notado que, al usar el temido <asp:UpdatePanel ... /> y <asp:LinkButton ... />, que además de UpdateMode="Conditional" sobre el UpdatePanel Se requieren los siguientes otros cambios:

  • ViewStateMode="Enabled" se requiere en <asp:Content ... /> (Lo he configurado en Disabled en el MasterPage)
  • ClientIDMode="Static" tuvo que ser retirado de <%@ Page ... />

Para evitar devoluciones de datos, agregue return false al evento onclick.

button.attribute.add("onclick","return false;");

Muestra:

string PopupURL = Common.GetAppPopupPath() + "Popups/StockChart.aspx?s=" + symbol;
hlLargeChart.Attributes.Add("onclick", String.Format("ShowPopupStdControls(PCStockChartWindow,'{0}');return false;", PopupURL));
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top