Search

'paging'에 해당되는 글 2건

  1. 2011.09.13 SPLINQ 를 통한 페이징
  2. 2011.07.26 SPQuery 를 통한 페이징

SPLINQ 를 통한 페이징

SharePoint 2010 2011.09.13 08:30 Posted by 정홍주

SPLINQ 를 통한 페이징

예전 글에서 SPQuery 통한 페이징에 대해서 다루어 보았습니다. 그리고 LINQ to SharePoint 에 대한 내용도 다루어 보았습니다. 앞부분에서 누락되어 정리해둡니다.

SPLINQ 를 통해서 페이징이 가능합니다. 원래 LINQ에 있는 기능일 뿐입니다. 아래에서 간단히 코드를 통해서 살펴보도록 하겠습니다.

간단히 Title 0에서 Tile 49까지 추가되어 있습니다.

SPMetal 을 이용해서 엔티티 클래스를 생성하고 프로젝트에 엔티티 클래스 파일을 추가했습니다.

자 그럼 1 페이지 코드를 살펴보도록 하겠습니다.

SPLINQ의 쿼리에서 Skip, Take를 사용하고 있습니다. 결과는 다음과 같습니다.

2 페이지의 경우는 int Page=2 라고 바꾸면 됩니다. 아래는 3 페이지의 결과입니다.

항목을 하나 더 추가하고 6 페이지로 가보도록 하겠습니다. 맨 마지막 항목 하나가 보입니다.

SPQuery의 경우보다 더 간단한 듯 합니다~


신고
크리에이티브 커먼즈 라이선스
Creative Commons License

SPQuery 를 통한 페이징

SharePoint 2010 2011.07.26 08:30 Posted by 정홍주

SPQuery 를 통한 페이징

요번 글에서는 페이징에 대한 내용을 다루어 보도록 하겠습니다. 커스터마이징을 통해 List의 데이터를 요구사항에 맞게 보여주게 됩니다. 그럴 경우 Server 개체 모델을 통해서는 SharePoint List의 데이터를 SPQuery 클래스를 이용해 CAML를 통해 쿼리, 정렬, 필터를 처리할수 있습니다.

그런데 트러블슈팅하러 업체에 가서 코드를 보니 전체를 들고 와서 처리하고 있어 간단히 정리해봅니다.

SPListItemCollectionPosition 클래스를 통해 페이징 처리하는 코드의 예를 한번 살펴보도록 하겠습니다. 먼저 아래와 같은 간단한 사용자 지정 목록에 데이터를 50건 입력했습니다. Ref 는 정렬을 하기 위한 내용으로 0~49까지의 값을 가지고 있습니다.

SharePoint OM에서 SPQuery를 통해 RowLimit, Query(Where, OrderBy)를 처리해서 1페이지에 대한 내용을 출력해줄 수 있습니다.

아래 코드의 내용을 보면 10건으로 제한하고 Ref Descending으로 정렬해서 화면에 출력해줍니다. 1 페이지의 경우 아래와 같이 처리하고 2 페이지부터는 페이징이 되도록 처리합니다.


1 페이지에 대한 결과는 아래와 같습니다.

2페이지에 대한 내용은 아래와 같이 처리할 수 있습니다. Lastitem은 직접 입력해서 처리했습니다.


SPListItemCollectionPosition 의 생성자의 매개변수(PageInfo)는 다양한 옵션들(Paged, p_정렬키, Next, Prev) 이 있으며 위의 코드에서는 아래와 같은 내용이 처리됩니다.

Paged=TRUE&p_Ref=40&p_ID=41

결과는 아래와 같습니다.


3페이지의 경우는 lastitem 30으로 해서 실행해보면 됩니다.

물론 페이지 사이즈를 5로 지정해서 테스트할 수도 있습니다.

위의 코드를 기반으로 SPQuery에서 모두 들고 와서 해당 페이지에 대한 내용을 표시해주는 경우 SPListItemCollectionPosition 을 통해 해당 페이지에 대한 내용만 가져와서 표시해 줄 수 있습니다. 실제 SQL 쿼리에서도 SELECT TOP(@NUMROWS)가 처리됩니다.

Client OM에서도 동일한 클래스(SPListItemCollectionPosition) 를 볼 수 있으며 REST 에서도 페이징에 대한 내용을 지원해주고 있습니다.


신고
크리에이티브 커먼즈 라이선스
Creative Commons License


 

티스토리 툴바