2011-02-09 5 views
2

불행히도이 문제를 해결하기 위해 시도하는 동안 this thread을 발견했습니다. 이미 모든 것이 있어야하므로 문제를 파악할 수 없습니다.UpdatePanel 조건부 updatemode가 작동하지 않음

<asp:UpdatePanel ID="upPnlGeneralinfo" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true"> 
     <ContentTemplate> 
     <script type="text/javascript"> 
      Sys.Application.add_load(BindPageLoad); 
     </script> 

각 물론 다른 ID를 가지고 :

나는 각이 같은은 .js 파일 설정에 함수를 호출 3 updatepanels 있어요. 컨트롤이 업데이트 패널 내에서 포스트 백을 호출 할 때마다 js 파일에서 console.log ("js 파일 실행")를 추가했는데 세 번 호출되면서 세 개의 업데이트 패널이 모두 새로 고쳐진다는 것을 알 수 있습니다. 단지 하나가 아닌.

모든 트리거는 각각의 업데이트 패널에 포함되어 있으므로 트리거를 추가 할 필요가 없습니다. (나는 확실히 했으므로 아무런 차이가 없습니다.) UpdateMode = 조건부로이 문제를 해결하지 않아야합니까?

언급할만한 가치가있는, 내 코드 중 어떤 것도 updatepanel.update()를 호출하지 않습니다. 나는 각각의 패널에 각각의 컨트롤을 추가하려고 시도했지만 아무런 차이가 없었다.

아이디어가 있으십니까?

답변

2

모든 업데이트 패널이 새로 고쳐지고있는 것은 아닙니다.

MSDN 문서에서 클라이언트로드 이벤트는 동기 (전체 페이지 다시 게시) 또는 비동기 (부분 페이지) 다시 게시 후에 발생한다고합니다.

이것은 업데이트 패널 중 하나만 의도 한대로 새로 고칠 수 있지만 3 개의 이벤트 처리기는 모두 MS Ajax를 사용하여 연결 한 방법 때문에 비동기 포스트 백 이후에 다시 실행된다는 것을 의미 할 수 있습니다.

MSDN 발췌 : 응용 프로그램의

클라이언트 이벤트 및 PageRequestManager 클래스
Sys.Application.load 이벤트

  • Sys.Application.add_load (핸들러); 모든 스크립트 이후에 발생

는로드 을 왔고 $를 사용하여 생성 된 응용 프로그램의 모든 개체가 초기화된다 만듭니다. 부하 이벤트는 모든 포스트 백에 대해 서버 ( 비동기 포스트 백이 포함)으로 발생합니다.

일반 페이지 처리하는 동안 브라우저 창 : 상태를 부분 페이지 렌더링 이벤트 만하면 전체 페이지가로드를 실행하는 다른 이벤트 작업 http://msdn.microsoft.com/en-us/library/bb386417.aspx

-
.온로드 DOM 이벤트 가 발생할 때 페이지가 처음로드
- http://msdn.microsoft.com/en-us/library/bb398976.aspx

이 일반 DOM로드 방법, MS 아약스의 일부.

따라서 클라이언트 코드를 일반 window.onload 이벤트에 연결하면 처음에는 전체 페이지가로드되고 연속 비동기 포스트 백이 아닌 경우에만 실행됩니다 (업데이트 패널/부분 새로 고침이라고도 함).).

이 지식이 내가 원하는 결과를 제공 할 수 있는지 여부. 하이브리드 브라우저/MS Ajax 클라이언트 솔루션이 존재할 때 솔루션에 대한 MS Ajax 개체 만보고있을 수 있습니다.

관련 문제