2011-07-26 6 views
1

데이터를 패치하고 페이지하려면 저장 프로 시저를 사용해야합니다. 이 특정 저장 프로 시저에는 페이징 정보를 포함한 모든 종류의 매개 변수가 있습니다. 분명히 페이징은 서버 측에서 수행해야하며, 사용자가 새 페이지를 선택할 때마다 한 페이지의 데이터를 가져와야합니다.MVCContrib 표가있는 서버 쪽 페이징

MVCContrib를 사용하여이 작업을 수행하려하지만 그리드와 호출기는 로컬 페이징 및 필터링 만 지원합니다. 사용할 수있는 페이지 수는 컬렉션에 이미있는 항목의 수에 따라 결정되므로 나에게 맞는 것 같습니다.

MVCContrib을 서버 쪽 페이징과 함께 사용할 수있는 방법이 있습니까?

답변

1

직접 IPagination 인터페이스를 구현하고 작업 매개 변수에 페이지 매개 변수를 추가 한 다음 저장 프로 시저에 전달하여 적절한 항목 컬렉션을 가져와야합니다. 그런 다음이 IPagination 속성과 저장 프로 시저의 작동 방식에 대한 지식을 채 웁니다.

이 예제를 좀 더 구체적으로 보려면 저장 프로 시저 샘플 (또는 줄임표 버전)이 유용 할 수 있습니다.

"가능한 페이지 수는 컬렉션에 이미 존재하는 항목의 수에 의해 결정된다, 또는 그래서 나에게 것 같습니다."

아마도 LINQ의 맛을 사용하는 샘플을보고있을 것입니다. 그렇다고 컬렉션 전체가 메모리에 있다는 것을 의미하지는 않습니다. 또한, 그들이 메모리에 있더라도, 나는 여전히이 쪽 페이지 호출이라고 부를 것이다. 나에게, 웹 애플리케이션의 클라이언트 쪽 페이징은 자바 스크립트를 의미한다. 그들은 "AsPagination()"확장자를 사용 http://weblogs.asp.net/rajbk/archive/2010/05/08/asp-net-mvc-paging-sorting-filtering-using-the-mvccontrib-grid-and-pager.aspx

:

추신 : 그것의 소리에 의해 당신이 그것의 엔티티 프레임 워크 비트를 무시해야합니다하지만 이것은 시작하는 데 도움이 될 수 있습니다 저장 프로 시저를 호출하고 IPagination의 구현을 채워야합니다.

3

MVCContrib에는 CustomPagination이라는 클래스가 있습니다. 생성자는 다음 인수를 취합니다.

(Enumerable<T> dataSource, int pageNumber, int pageSize, int totalItems) 

그런 다음 그리드 및 호출기로 전달합니다.