2010-04-16 5 views
0

나는 작업을 편집하고 유용한 정보를 얻은 후에 작업을 생성하고 삭제하는 워크 플로를 가지고 있습니다. 작업에 대한 사용자 지정 편집 양식을 만들었으므로 SPLongOperation을 사용하여 페이지를 마비시킬 수 있습니다. 어떤 방식 으로든 페이지를 멈추게하지 않으면 작업 흐름이 작업을 삭제하기 전에 잠시 동안 작업 목록에서 작업을 볼 수 있기 때문에 이것이 필요합니다. 따라서 작업이 완전히 삭제 될 때까지 페이지를 멈추게하는 코드가 필요합니다.SharePoint 목록 항목이 SPLongOperation으로 삭제 될 때까지는 어떻게 중지합니까?

현재이 문제에 대한 해결책을 구현했지만이 방법에 만족하지 않습니다. 그것은 기본적으로 while 루프로 합쳐져서 오류가 발생할 때까지 SPList.GetItemById을 호출합니다. 고의적으로 오류를 일으키려고 시도하는 것은 나에게 잘 맞지 않는다. 그러나 이것을 점검하는 더 빠른 방법을 생각할 수 없다. 나는 바람직하지 않은 경우 빠른 속도로, 바람직하게는 예외를 포착하지 않고 빠르게 작업 할 수있는 대안을 찾고 있습니다.

답변

1

SPQuery을 사용하여 ID를 조회하고 찾지 못하는 경우는 어떻습니까? 이것은 예외를 던지지 않습니다.

+0

따라서 while 루프 외부에서 ID에 대한 쿼리를 초기화 한 다음 'SPList.GetItems (Count) .Count == 0'까지 루프를 실행하십시오. 그 라인을 따라 생각해 보았는데, LINQ와는 정말 놀지는 못했지만 더 빠르게 작동할까요? –

+0

LINQ를 사용할 필요가 없습니다. Thread.Sleep (100)을 사용하여 루프에서 쿼리를 반복하면됩니다. 정확한 논리를 모르거나 이것이 왜 문제인지는 모르겠지만 SPQuery는 큰 목록에서도 쿼리 할 수있는 효율적인 방법입니다. –

+0

문제가되지 않습니다 ...이 질문의 목적은 모든 가능성을 탐색하는 것입니다. 비슷한 접근법에 대해 묻는 것은 그 논리와 인라인으로 보였다. –