2012-10-24 3 views
0

길고 시간이 많이 걸리는 ASP.Net 페이지가 있습니다. 컴퓨팅하는 동안 "로드 중"단어를 표시하고 완료되면 결과를 표시하고 싶습니다. 여기 코드는 : 그것은 거의 작동하고ASP.Net UpdatePanel은 포스트 백을 수행하지 않습니다.

<asp:UpdatePanel UpdateMode="Always" runat="server" ID="upanel1"> 
     <ContentTemplate> 
      <asp:Button ID="btnGetInfo" runat="server" Text="Lekérés" OnClick="btnGetInfo_Click" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="btnGetInfo" EventName="Click" /> 
     </Triggers> 
    </asp:UpdatePanel> 
</div> 
<asp:UpdateProgress ID="UpdateProgress1" runat="server" AssociatedUpdatePanelID="upanel1"> 
    <ProgressTemplate> 
     <div> 
      LOADING</div> 
    </ProgressTemplate> 
</asp:UpdateProgress> 

(I는 "LOADING"를 참조 할 수 있으며 btnGetInfo_Click 기능은, "LOADING"disapperrs 종료 후). 끝나면 포스트 백이 필요합니다.

비슷한 문제가 발견되었지만 해결책이 도움이되지 않았습니다.

답변 해 주셔서 감사합니다.

+0

내가 끝났을 때 포스트 백이 필요하다는 것을 잊어 버렸습니다. 포스트 백이 완료되면 모든 준비가 완료되고 반환을받습니다. 두 번째 게시물이 필요하십니까? 그리고 어디? – Aristos

+0

나쁜 영어로 죄송합니다. btnGetInfo_Click 프로 시저에서 그리드의 DataSource를 설정합니다. 그런 다음 DataBind 메서드를 호출합니다. "LOADING"텍스트가 사라지면 그리드에 결과가 표시되지 않습니다. 결과를보고 싶다면 포스트 백 (예 : 쓸모없는 버튼 클릭)을 유발하는 작업을해야합니다. – gkovacs90

답변

1

btnGetInfo를 클릭하면 발생하는 현상은 UpdatePanel ContentTemplate 내부의 내용을 새로 고치는 부분 페이지 다시 게시입니다. DataBind()를 호출 할 때 GridView가 업데이트되지 않는 이유는 UpdatePanel ContentTemplate 내부에 있지 않기 때문입니다.

전체 페이지 다시 게시를 트리거하면 UpdatePanel의 목적을 무효화합니다. ContentTemplate 안에 GridView를 배치하여 문제를 해결하는 것이 좋습니다.

관련 문제