2010-07-13 2 views
11

나는 (업데이트를위한 패널에있는) 링크 버튼과 리피터를 가진 사용자 컨트롤을 가지고있다. 페이징은 올바르게 작동하지만 다음 페이지로 클릭 할 때마다 전체 페이지 포스트 백이 발생합니다.전체 페이지 포스트 백을 야기하는 업데이트 패널 내부의 사용자 정의 컨트롤

<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> 

그리고 사용자 컨트롤의 내용은 다음과 같이 :

<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. 

지금까지, 나는 사용자에 대한 비동기 포스트 백 트리거를 추가하는 시도

는 업데이트 패널은 다음과 같습니다 컨트롤을 사용하면 비동기 포스트 백이 발생하지만 업데이트 패널의 나머지 텍스트는 업데이트되지 않습니다. 즉, 비동기 포스트 백이 발생하고 다음 페이지가 표시되지만 리피터의 원본 텍스트도 바로 아래에 표시됩니다.

IDS를 내 linkbuttons에 설정했음을 확인했습니다. 이는 업데이트 패널 내에서 전체 포스트 백을 트리거 할 수 있기 때문입니다.

업데이트 패널 모드 (항상, 조건부, ChildrenAsTriggers 등)를 변경해 보았습니다.

아무런 차이가 없습니다. 비동기 포스트 백이 실제로 발생하는 것은 트리거를 사용하는 것 뿐이며 업데이트 패널의 나머지 콘텐트는 업데이트되지 않으므로 중복 콘텐트를 얻습니다. 어떤 아이디어?

+0

전체 포스트 백을 유발하는 LinkButtons의 ID 부족에 대한 정보는 저에게 유용합니다. – paulH

답변

15

UpdatePanel이 내용을 <div> (예 : <tr> 내부에있는 경우)로 렌더링 할 수없는 경우 전체 포스트 백이 발생합니다. UpdatePanel 내부에서 html을 확인하십시오. 거기에 대한 답을 찾을 수 있습니다 (또한 잘못 닫힌 요소와 같은 잘못된 xhtml을 찾습니다).

+0

이것은 그 것이었다! 헤더 템플릿 내부에 눈치 채면 우연히 바닥 글에서 닫는 대신 태그를 닫았습니다. 잘못 형성된 태그를 제거하자마자 작업을 시작했습니다. 나는 그 업데이트 패널이 그 터치 패널인지 전혀 몰랐다. ... – Neil

+0

+1 : 나의 UpdatePanel은 테이블 태그 안에 직접 놓여 있었고, 거기서 움직이면 일들이 시작되었다. 감사! –

0

업데이트 모드 제거 = "항상"아무것도 올려 놓지 마세요. 정상적으로 작동합니다.

한 가지 더 스크립트 관리자를 페이지에 추가하거나 제어하지 않으시겠습니까?

스크립트 관리자가 없으면 작동하지 않습니다.

+0

기본 업데이트 모드는 항상 그렇다고 생각합니다. 삭제했지만 차이는 없습니다. 스크립트 관리자는 현재 사용자 정의 컨트롤이 아니라 페이지에 추가됩니다. – Neil

관련 문제