2010-07-13 7 views
11

Tengo un control de usuario con botones de enlace (usados ​​para paginación) y un repetidor dentro de un panel de actualización. La búsqueda funciona correctamente, pero está causando una devolución de página completa cada vez que hago clic en la página siguiente.Control del usuario dentro del panel de actualización que causa la devolución de datos de página completa

El panel de actualización se parece a esto:

<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always"> 
     <ContentTemplate> 
      <asp:Repeater ID="rptOrganizations" runat="server"> 
       <HeaderTemplate> 
        <table> 
         <thead> 
          <tr> 
           <th>Organization</th> 
           <th>State</th> 
           <th>Accredited Since</th> 
          </tr> 
         </thead> 
        </table> 
       </HeaderTemplate> 
       <ItemTemplate> 
        <tr> 
         <td> 
          <asp:Literal ID="ltlInstitution" runat="server" /> 
         </td> 
         <td> 
          <asp:Literal ID="ltlState" runat="server" /> 
         </td> 
         <td> 
          <asp:Literal ID="ltlAccreditedDate" runat="server" /> 
         </td> 
        </tr> 
       </ItemTemplate> 
       <FooterTemplate> 
        </table> 
       </FooterTemplate> 
      </asp:Repeater> 

      <uc2:RepeaterPaging ID="rpPager" runat="server" PageSize="10" OnNextButtonClickEvent="btnNext_Click" OnPreviousButtonClickEvent="btnPrev_Click" /> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

Y el contenido del control de usuario tener este aspecto:

<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> | 
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton> 

&nbsp;&nbsp; 
<asp:Literal ID="ltlNumResults" runat="server" /> results returned. 

Hasta ahora, he intentado añadir una devolución de datos de disparo asíncrono para el usuario control, que causa una devolución de datos asincrónica pero no actualiza el resto del texto en el panel de actualización. En otras palabras, se produce la devolución de datos asincrónica y aparece la siguiente página, pero el texto original en el repetidor también está allí debajo.

También he confirmado que tengo IDS configurado en mis botones de enlace, ya que eso puede activar una devolución de datos completa dentro de un panel de actualización.

He intentado cambiar el modo del panel de actualización (siempre, condicional, ChildrenAsTriggers, etc.).

Nada de eso hace la diferencia: lo único que realmente causa una devolución de datos asincrónica es usar el desencadenador, pero el resto del contenido en el panel de actualización no se actualiza, así que obtengo contenido duplicado. ¿Algunas ideas?

+0

Esa pepita de información sobre la falta de ID en LinkButtons que causaban una devolución de datos completa me resultó útil, ¡gracias! – paulH

Respuesta

15

La devolución de datos completa ocurre si su UpdatePanel no puede procesar su contenido en <div> (por ejemplo, cuando se encuentra dentro de <tr>). Así que revise su html dentro de UpdatePanel, puede encontrar la respuesta allí (también, busque algún xhtml incorrecto, como elementos incorrectamente cerrados).

+0

¡Esto fue todo! Si observa dentro de la plantilla del encabezado, accidentalmente cerré la etiqueta, en lugar de cerrarla en el pie de página. Tan pronto como eliminé la etiqueta formada incorrectamente, comenzó a funcionar. No tenía ni idea de que el panel de actualización era tan sensible ... – Neil

+0

+1: Mi Panel de actualización se colocó directamente dentro de una etiqueta de tabla, y al moverlo de allí las cosas comenzaron a funcionar. ¡Gracias! –

0

Eliminar el modo de actualización = "Siempre" No coloque nada sobre eso y debería funcionar.

Una cosa más es agregar el administrador de scripts a su página o no?

Sin gestor de scripts no funcionará.

+0

Creo que el modo de actualización predeterminado siempre es - Lo eliminé, pero no hizo la diferencia. El administrador de scripts se agrega actualmente a la página, no al control del usuario. – Neil

Cuestiones relacionadas