2011-01-23 7 views
3

보고 용으로 약 300-400 행의 gridview가 있습니다. 페이징이 필요하고 정렬이 필요합니다. 내 선택은 다음과 같은 두 가지 옵션 중 하나입니다. a) 한 쿼리에서 300-400을로드하고 gridview에서 페이징 및 정렬을 수행하도록합니다. b) 데이터 소스 레벨에서 페이징/정렬을 처리합니다. 나는 b)가 더 좋고/더 빨라/더 효율적일 것임을 압니다. 내 맥락에서, 나는 상대적으로 빠르게 끝내기를 기대하고 있습니다. 내가 a)를 고르면, 페이지가 놀라 울 정도로/고통스럽게 느린 것처럼 보일까요?gridview 호출

감사합니다.

+0

페이지 크기 클라이언트 측을 제어하는 ​​아약스 컨트롤을 사용할 수 있습니다. www.codeproject.com을 방문하십시오. –

답변

2

GridView의 기본 기능을 사용하여 한 번에 전체 데이터를로드하십시오. 레코드 수가 적을 때, 특히 빠른 솔루션을 찾고 있다고 언급했기 때문에 RowNumber와 함께 데이터베이스에 페이징을 구현하려는 노력은 가치가 없습니다. GridView에서 페이징을 활성화하면 성능이 충분합니다.

+3

@downvoters : 아무도 다운 폰트에 대해 언급하지 않는 것이 놀랍습니다. 이 경우에 전혀 필요하지 않은 db-paging 솔루션에 대해 추가 시간 (0,5-3 일)을 지불해야한다면 완전히 다른 주장을하게됩니다. –

+0

결국 그리드에는 페이징이 있습니다. 그러나 나는 언제 알지 못한다. 다른 그리드가 페이징을 필요로 할 것이기 때문에 실제로는 꽤 빠를 것 같아요. 그렇게 할 때, 좀 더 시간을 보내고이 특정 그리드를 페이징 할 수도 있습니다. downvote 사람들을 위해, 최종 사용자가 응용 프로그램이 완벽하게 끝나길 원한다는 것을 명심하십시오. 그냥 남자 완료 해! – frenchie

1

읽기 Scott Guthrie의 excellent article about paging.

ASP.NET 2.0 GridView 컨트롤을 사용하여 수십만 개의 결과를 표시 할 수있는 ASP.NET 2.0 및 Atlas로 작성된 데이터 검색 페이지를 구현하는 방법. 결과는 페이지 당 15 개의 결과가 표시되는 "페이징"기반 UI 모델을 사용하여 형식이 지정되며 사용자는 페이지를 건너 뛰고 데이터를 볼 수 있습니다. 킥의 경우 각 행을 편집하고 삭제하는 기능도 추가했습니다.

0

300-400 행은 특별히 큰 데이터 세트는 아니지만 분명히 확장 가능성이 높기 때문에 확실하게 옵션 B에 투표 할 것입니다. 방대한 양의 데이터를 가져 오기 시작하면 모든 쿼리를 하나의 쿼리로로드하고 GridView에서 페이징을 처리하게되면 엄청나게 느려지 게됩니다. 더 나은 옵션은 말했듯이 각 페이지에 필요한 데이터 만 쿼리하는 것입니다.

그러나 300-400 레코드보다 큰 데이터 세트를 가지지 않으려는 경우로드 시간에 너무 신경 쓰지 않아도되지만 키는 확장성에 있습니다.

+1

감사합니다. 이 특별한 경우 데이터 집합은 일상적인 활동을보고하는 맥락에서 사용되기 때문에 300-500 행을 초과하지 않습니다. 서버가 동시에 처리 할 수있는 사용자 수에 대한 확장 성을 의미합니까? – frenchie

+1

@frenchie : 저는 수천 또는 수십만 개의 레코드를 페이징하는 것에 대해 이야기하고 있습니다.하지만 300-500 개 레코드를 넘지 않기 때문에 뷰 수준에서 데이터를 페이징 할 수 있습니다. –