2009-10-18 5 views
2

JQuery를 통해 Repeater에서 페이징을 구현하려고합니다. 가능합니까? 그렇다면 어떻게 달성 할 수 있습니까?ASP.NET에서 Jquery로 페이징

+0

누군가가 플러그인을 사용하는 것 대신에 이것이 어떻게 달성 될 수 있는지에 대한 개념을 설명해 주시겠습니까? –

답변

2

tablesorter pager plugin은 꽤 훌륭하고 tablesorter 정렬 기능과 잘 작동합니다.

+0

흥미로운 링크이지만 TableSorter를 리피터로 사용할 수 있을지 모르겠습니다. http : // encosia에서 클라이언트 측에서 리피터 기능을 볼 수 있습니다.com/2008/06/26/use-jquery-and-aspnet-ajax-to-build-a-client-side-repeater/ –

0

모든 페이지를 한꺼번에로드하려면 this plugin을 사용해보십시오.

0

서버 쪽에서는 "viewmodel"- 데이터베이스에서 반환 된 레코드와 몇 가지 추가 정보를 변경해야합니다. 즉, currentPage rowsPerPage와 query for totalRows라는 세 가지 변수가 추가로 포함되어야합니다.

데이터베이스 쪽을 호출하고 모든 행을 가져와 다른 하위 집합을 표시 할 때 클라이언트 쪽만 페이지 번호를 지정하려면 데이터에 행 번호를 추가하고 rowsPerPage 및 현재 페이지에 대한 변수가 있어야합니다.

그런 다음 페이지 매김 "webcontrol"을 만들거나 javascript/jquery 코드로 직접 모든 부분을 실행해야합니다. 페이지 매김 컨트롤에는 일반적으로 총 레코드 수와 다음 페이지 번호 또는 선택할 수있는 드롭 다운이있는 현재 페이지 텍스트 상자가있는 이전 페이지 (<)와 다음 페이지 (>>) 단추가 있습니다.

마지막 페이지에 있다면 다음 페이지가 비활성화됩니다. 첫 페이지에 있다면 PreviousPage와 동일합니다. 일반적으로 현재 페이지 번호는 어떻게 든 표시됩니다 (색이 있거나 굵게 표시).

페이지 당 행 수는 일반적으로 사용자가 설정할 수 있으며 일부 옵션은 드롭 다운을 통해 설정 될 수 있습니다. 이 기능은 대개 선택적으로 숨겨 지거나 읽기 전용으로 설정 될 수 있습니다.

페이지가 변경되면 현재 페이지 번호 (1 기반)가 마지막 또는 처음 ...을 통과하지 않고 해당 페이지에 대한 행을 표시하도록 변경됩니다. 그의 수학은 다음과 같습니다

firstRowOnCurrentPage = (currentPage - 1) * rowsPerPage; 

마지막 행 가장에 있습니다 : 당신이 GetWhatever을 가지고있는 기록은 아약스에서 저장 프로 시저 SQL 호출을 통해 검색됩니다

maxLastRowOnCurrentPage = firstRowOnCurrentPage + (rowsPerPage - 1) // if there are enough records, or the remaining records for the last page. 

(당신의 웹 서비스 페이지 (즉, GetProducts 또는 NancyFX에 그냥/제품 모듈 것, 데이터베이스를 호출하고 기록의 해당 번호를 검색 MVC A/제품 컨트롤러 ...).에 중계기가 자동으로 반복됩니다.

See here for an MS SQL example 또는 here for a PHP and mySQL example.

페이징 (페이징)이있는 클라이언트 측 전용 중계기 데이터베이스를 한 번 호출 한 다음 결과를 '데이터베이스 모델'객체에 제공합니다.이 데이터로 수행 된 모든 페이징은 데이터베이스에 대한 두 번째 호출이 아닙니다.) 로컬 배열에 바인딩합니다.

마지막으로, 클라이언트 측만을 위해 업데이트/새로 고침 버튼 세트로 수정되거나 삭제 된 데이터를 업데이트하거나 새로 고침해야합니다.

+0

잘 작동하는 예제는 AspSnippents : http : //www.aspsnippets에서 찾을 수 있습니다. .com/Articles/Implement-Paging-in-Repeater- 컨트롤 - 인 ASPNet.aspx – pashute