그리드에서 많은 양의 레코드로 작업하는 상황에 처해 있습니다. 대신 모든 레코드를 그리드에 바인딩하십시오. 왜 우리는 5 페이지에 속하는 기록들을 묶어서는 안된다.페이징 메커니즘
페이징 메커니즘
답변
AllowPaging
을 true로 설정하고 PageSize
을 페이지 당 표시 할 레코드 수로 설정하여 GridView에서 페이징을 사용할 수 있습니다.
페이징의 장점은 전체 데이터 소스를 GridView에 바인딩하여 사용자가 페이지 간을 이동할 수 있다는 것입니다. 서버 측에서 프로그래밍이 거의 필요하지 않으므로 항상 전체 데이터 소스로 작업 할 수 있습니다.
편집 :
또한 당신이의 GridView 뷰 상태에서 전체 데이터 집합을 넣지 않는 것이 좋습니다, 더 나은 옵션은 데이터를 캐시와 같이 페이지로드
OnRowDataBound 이벤트를 사용하면 현재 페이지의 항목 만 바인드되므로 너무 많은 작업을 수행 할 필요가 없습니다. – mbillard
에 바인딩하는 것 좋은 연습은 레코드의 수가 적다는 것을 절대적으로 확신하지 않는 한, 쿼리에서 검색 한 모든 레코드를 그리드보기와 같은 컨트롤에 직접 바인딩해서는 안됩니다.
레코드 수가 많으면 바인딩에 시간이 오래 걸리기 때문에 페이지로드가 느려지기 때문입니다.
이전 프로젝트에서 사용한 한 가지 접근법은 쿼리의 영향을받는 총 레코드 수를 가져 오는 것입니다. (그들은 1000라고 말한다).
그런 다음 레코드 수를 페이지 크기 (예 : 100)로 나눕니다.
이제 페이지 (1-10)로 페이지 매김을 제공합니다.
사용자가 특정 페이지를 클릭하면 SQL에서 ROW_NUMBER()
함수를 사용하여 해당 페이지와 관련된 레코드를 가져옵니다.
쿼리
SELECT x, y, ROW_NUMBER() OVER(ORDER BY z asc) AS 'RowNumber'
FROM t WHERE RowNumber > lowerlimit and RowNumber < upperlimit.
LOWERLIMIT 같은되며 UPPERLIMIT는 현재의 페이지 번호와 페이지 크기를 사용하여 계산됩니다.
이 질문에 대한 답변입니다.
- 1. 메커니즘
- 2. 보관 메커니즘
- 3. 페이징
- 4. Silverlight에서 DB가없는 폴링 메커니즘
- 5. 정책 및 메커니즘
- 6. 내용 지배 구조 메커니즘
- 7. SQL의 drope 테이블 메커니즘
- 8. Facebook 문자셋 탐지 메커니즘?
- 9. Eclipse의 plugin.properties 메커니즘 RCP
- 10. PHP 현지화 메커니즘
- 11. 동기화 메커니즘 - Windows CE
- 12. RichTextBox의 FIFO 메커니즘
- 13. 종속성 삽입 메커니즘
- 14. 자바 캐시 메커니즘
- 15. 데이터베이스 동시성이 작동하는 메커니즘
- 16. 플렉스 4 레이아웃 메커니즘
- 17. 자바 확장 메커니즘
- 18. SCORM - RTE보고 메커니즘 보안
- 19. Grails의 검색 메커니즘
- 20. codeigniter 컨트롤러 메커니즘
- 21. C# 스레딩 메커니즘
- 22. 루프를 보장하는 메커니즘
- 23. 생성자 호출 메커니즘
- 24. 업데이트 메커니즘 이론
- 25. JSF 용 Acl 메커니즘
- 26. CodeIgniter의 정적 변수 메커니즘
- 27. ASP.NET 캐시 만료의 메커니즘?
- 28. Android 애플리케이션 IPC 메커니즘
- 29. 콤보 감지 메커니즘
- 30. 델파이 - 인증 메커니즘 제안
인터넷에 그리드 용 페이징 예제가 많이 있습니다. 아마도 유명한 검색 엔진에서 검색하면 올바른 방향으로 인도 할 것입니다. – Lazarus
당신이 찾고있는 것을 더 정확하게 말하면 (코드, 이론 등) 우리는 당신에게 약간의 해답을 줄 수있을 것입니다. – Joel
슬프게도, 예를 들어 페이징을 통해 전체 DataSet을 ViewState에 넣을 수 있습니다. yuo가 볼 수 있는지 계속 확인하십시오. #/sort-col 정보를 인수로 취하는 영리한 저장 프로 시저 아이디어가 있습니다. – n8wrl