2009-09-14 1 views
1

다음은 시나리오입니다. 그리드 형식으로 사용자에게 데이터를 표시하는 셰어 포인트 웹 파트가 있습니다. 이들은 모두 사용자가 각 데이터 그리드에 대한 매개 변수를 선택할 때 사용할 수있는 탐색 웹 파트에 연결합니다. 백엔드에서 그리드 웹 파트는 DI 컨테이너를 호출하여 일부 SoR을 쿼리하고 데이터 테이블을 반환하는 "IDataProvider"를 가져옵니다.Sharepoint 웹 파트의 병렬 서버 쪽 처리

여기에 내가 원하는 무엇 : 나는 우리의 "IDataProvider"implentations의 많은 웹 서비스를 호출 할 수 있기 때문에 그리드 웹 파트가 병렬이 아닌 직렬로 실행해야합니다. "OnPreRender"메서드에서 "wait"플래그가있는 WebPartManager.ConnectionsActivated 이벤트에서 BackgroundWorker를 스풀링하려고 시도했지만 서버에서 비동기 작업이 허용되지 않는다는 오류가 발생했습니다. 페이지 레이아웃에서 "비동기"플래그를 true로 설정하려고 시도했을 때 "비동기"플래그를 true로 설정하는 것이 SharePoint 공유가 금지한다는 오류 메시지가 나타납니다.

해결 방법이 있습니까?

답변

1

DivisionByZorro는

첫째, 나는

:-) 이름을 사랑 두려워하지 말라 : WebParts 너무 많은 추가 작업없이 멀티 스레드 비동기/실행할 수 있습니다. Page.RegisterAsyncTask을 통해 적절한 이벤트 처리기를 등록하기 만하면됩니다. 비동기 적으로 호출해야하는 메소드와 처리가 완료되면 제어가 리턴 할 콜백 메소드를 지정합니다.

Daniel Larson이 기사 (http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!180.entry)와 (http://daniellarson.spaces.live.com/blog/cns!D3543C5837291E93!192.entry)에서 멋진 기사를 제공합니다. 그는 또한 몇 가지주의 사항 및 기타 우려 사항을 다루고 있습니다.

도움이 되었기를 바랍니다.

+0

이것은 정확히 제가 찾고있는 종류의 것입니다. 그것은 꽤 단순 해 보입니다 (적어도 이런 종류의 것은 얻을 수있는 것처럼 간단합니다). 감사! – DivisionByZorro