2012-06-20 3 views
0

MVC3 사이트를 만들고 페이지 집합을 사용하여 (PagedList;를 사용하여) 데이터 묶음을 표시합니다. 호출 당 2000 개 이상의 행을 가져 오는 저장 프로 시저가 있습니다.Jquery.ajax는 데이터베이스에서 데이터를 검색합니다.

저는 AJAX와 JQUERY를 사용하여 데이터 ($.ajax 호출 jquery)를 검색하고 컨트롤러에서 검색된 데이터에 페이지 매김을 수행했습니다. 그래서 나는 2000 개의 데이터 행을 저장 프로 시저에서 가져와 컨트롤러에서 페이지 매김을 수행하고 10 개의 데이터 행을 표시합니다. 그러나 "Next"/ "previous"링크를 클릭하면 컨트롤러는 동일한 저장 프로 시저를 다시 호출하고 다른 2000 개의 행을 검색하고 컨트롤러에서 pagenumber를 기반으로 데이터를 표시합니다. 따라서 매번 2000 행을 가져옵니다.

여기서 래퍼 클래스를 사용하지 않습니다. 컨트롤러에서 저장 프로 시저를 직접 호출합니다.

감사합니다.

+0

나는 데이터베이스 접근법을 사용하고있다. – user1451999

답변

0

매개 변수로 반환 할 현재 페이지 번호와 레코드 수를 사용하도록 저장 프로 시저를 수정해야합니다. 이렇게하면 데이터베이스에서 모든 레코드를 가져 오지 않고 클라이언트에서 슬라이스하는 것을 피할 수 있으므로 효율을 염려 할 경우 페이지 매김을 수행하는 유일한 올바른 방법 인 SQL Server에서 페이지 매김이 직접 수행됩니다.

+0

나는이 접근법을 생각했지만 AJAX를 사용 했는가? AJAX는 페이지를 새로 고치지 않고 성능을 향상시키지 않는다고 생각합니다. 따라서 AJAX는 데이터를 가져 오는 측면에서 성능을 향상시키지 않습니다. 그 데이터를 임시로 저장하고 컨트롤러에서 다음 데이터 세트를 얻기 위해 아약스를 사용하는 방법이 있습니까? – user1451999

+0

그러면 컨트롤러가 일반적으로 피해야하는 무언가 인 "상태 저장"이됩니다. Ajax에는 인터페이스를 유지하면서 서버에 비동기 적 호출을 허용한다는 사실을 제외하고는 (Ajax에는) 마술이 없다. 페이지 매김 코드를 중심으로 개발해야 할 것이고, 대답의 SQL 서버 솔루션이 올바른 방법입니다. – Tallmaris

+0

오케이 고마워요! – user1451999

관련 문제