2010-07-07 4 views
1

ASP.NET 웹 양식 응용 프로그램에서 작업하고 있습니다. 내 페이지에는 UpdatePanelUpdateProgress 및 여러 개의 버튼이있는 사용자 정의 컨트롤이 있습니다. 사용자가 버튼 중 하나를 클릭하면 비동기 포스트 백을 수행하고 UpdateProgress을 표시하고 싶습니다.상위 페이지의 UpdatePanel에 대한 사용자 정의 컨트롤에서 ASP.NET AJAX UpdateProgress

사람은 다시 게시 비동기을 (작동 보이는 등)뿐만 아니라 UpdateProgress을 나타나는이 (아직 작동하지 않습니다) 만들기 나를 도와 드릴까요?

일반적으로 페이지 마크 업에서 UpdateTrigger을 정의하면 쉽게 처리 할 수 ​​있습니다. 사용자 컨트롤 안에 있지 않습니다. 나는 공중 재산 AssociatedUpdatePanelID를 드러내고, 통제 안에 UpdatePanel의 ID가있게했다. 다음과 같이

UpdateProgress 정의된다 : 내가 재판을 무엇

<asp:UpdateProgress AssociatedUpdatePanelID='<%# AssociatedUpdatePanelID %>' /> 

내 컨트롤의 Page_Load하지만, 접근 없음 (포스트 백을 수행하지만, UpdateProgress 표시되지 않습니다) 작동 :

updatePanel.Triggers.Add(new AsyncPostBackTrigger() 
{ 
    ControlID = this.ID, 
    EventName = "RequestOptimize" 
}); 

var scriptMgr = ToolkitScriptManager.GetCurrent(Page); 
scriptMgr.RegisterAsyncPostBackControl(optimizeButtonJobs); 
scriptMgr.RegisterAsyncPostBackControl(this); 
+0

왜 UserControl에 UpdatePanel을 넣지 않습니까? –

+0

여러 페이지에있는'UpdatePanel'에서'GridView'와 함께 사용자 정의 컨트롤을 사용합니다. 사용자 컨트롤은 항상 동일합니다.'GridView'는 그렇지 않습니다. –

답변

0

비동기 포스트 백 트리거로 페이지에 사용자 정의 컨트롤을 등록 할 수 있습니다. 더 이상의 마법은 필요하지 않습니다. 그것이 나를 위해 작동하지 않는 이유는 (우연히) 버튼에 설정된 PostBackUrl 속성이었습니다.

<asp:AsyncPostBackTrigger ControlID="myCustomControl" /> 
관련 문제