2009-04-29 2 views
1

저는 작은 게시판 앱을 작성 중이며 대부분은 지금까지 작동하는 것으로 보입니다. 그러나 통지보기 페이지에 Ajax 패널을 추가하려고 시도했지만 작동하지 않습니다.데이터리스트를 asnyc 포스트 백 트리거로 성공적으로 등록했습니다.

사이트는 세 개의 컨텐츠 영역이있는 마스터 페이지를 사용합니다.이 페이지의 경우 알림 필터, 알림 제목 목록 (Page.Load 이벤트에 채워진 데이터 목록) 및 현재 표시된 통지. 제목을 클릭하면 알림이로드됩니다.

문제점은 현재 표시된 통지가 Ajax 패널에 표시되기를 원하지만, 트리거가 다른 컨텐츠 영역에 있습니다. 나는 마스터 페이지의 콘텐츠 자리 표시 외부 스크립트 관리자를 넣어 가지고, 그리고 영문 페이지에 나는 다음과 같은 트리거 통지보기 지역 안에있는 내용의 주위에 업데이트 패널을 넣어했습니다

<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="dlSelector" EventName="ItemCommand" /> 
</Triggers> 

그리고에 Page.Load 이벤트 내가 가진 :

'Get the script manager first, and register the selector as a postback 
Dim sm1 As ScriptManager = ScriptManager.GetCurrent(Page) 
sm1.RegisterAsyncPostBackControl(dlSelector) 

이 컴파일 및 코드 부분은 확인을 실행하는 것,하지만 난 오류 UpdatePanel1 ''UpdatePanel의 트리거를 찾을 수 없습니다 'dlSelector'ID와 제어 '를 얻을 수 . ' 내가

sm1.RegisterAsyncPostBackControl(Page.FindControl("dlSelector")) 

sm1.RegisterAsyncPostBackControl(dlSelector) 

를 교체 할 경우 그때의 FindControl가 null 돌아왔다 오류가 다시는 이상 떨어진다. 내가 도대체 ​​뭘 잘못하고있는 겁니까?

답변

1

마스터 페이지는 제어 이름이
(예 : ct100_someotherstuff_nameOfControl)으로 변경되었으므로 FindControl이 빈 손으로 되돌아 오는 것을 의미합니다. 컨트롤의 적절한 ID를 사용하여 포스트 백 컨트롤을 등록해야합니다.

Rick Strahl에서 읽으십시오. this post에서 참조되었습니다.

희망이 있습니다.

+0

빠른 응답 주셔서 감사합니다. 지금은 더 행복해 보입니다. – Barn