2010-05-31 4 views
1

나는 1000 개가 넘는 레코드를 포함하는 테이블에 바인딩 된 DataGrid 컨트롤을 가지고 있습니다. 한 번에 25 개의 레코드 만 표시하려고합니다. 나는 DataGrid에서 페이징을 사용했다. 그러나 다음 페이지 인덱스가 설정 될 때마다 쿼리가 다시 시작됩니다. 이것은 많은 시간을 필요로합니다. 그렇다면이 경우 데이터를 바인딩하여 성능을 향상시키는 가장 쉬운 방법은 무엇입니까? ??DataGrid를 바인딩하여 1000 개가 넘는 레코드가있는 테이블의 25 개 레코드 만 표시하는 방법은 무엇입니까?

답변

1

데이터 세트 캐싱을 고려하셨습니까? 캐시가 비어 있거나 만료 된 경우에만 데이터를 쿼리하면됩니다.

1

당신이 당신의 페이지 변경된 이벤트를 처리 할 때 새 페이지 정보에 끌어해야합니다. CurrentPageNumber 및 PageSize를 인수로 사용하는 저장 프로 시저를 만들어야합니다.

이것은 데이터를 가져올 때 이미 제공 한 다른 인수에 추가됩니다. 은 SP에서

, 당신은 임시 테이블이나 테이블 변수를 채우는 (또는 당신은 CTE를 사용할 수 있습니다) 당신이 반환하는 데이터뿐만 아니라 ROWNUMBER.

How to return a page of results from SQL?

다음과 같습니다 1.

좋은 자원이다 - 당신의 CurrentPageNumber 인수에 근거하여

, 당신은 CurrentPageNumber * 페이지 크기와 (CurrentPgaeNumber + 1) * 페이지 크기가 사이의 모든 결과를 반환 할 수 있습니다
관련 문제