MvcContrib 호출기를 사용하여 그리드를 사용하고 있지 않습니다. 나는 호출기 (그래서 쉽게 결과의 상단과 하단에 표시 할 수 있습니다)에 대해 생성 된 부분도 있고, 그것은뿐만 그래서 @Html. Pager
메소드를 호출 :MvcContrib 호출기 - 페이지 크기 변경
@Html.Pager(Model.PagedPrograms).First("<<").Last(">>").Next(">").Previous("<").Format("Item {0} - {1} of {2} ")
이 모든 한 추가 조정이없이 작동 매개 변수는 QueryString을 통해 페이지로 전달됩니다. Pager는 URL에서 해당 매개 변수를 다시 작성한다는 것을 알고 있기 때문입니다.
I는 사용자에게 (예를 들어 20, 50, 모두) ... 내가 쉽게 컨트롤러 끝에 그것을 처리 할 수있는 페이지 크기를 변경할 수있는 옵션을 제공하고 싶습니다, 내가
@if (Model is Foo) {
@Html.ActionLink<SearchController>(sc => sc.Foo(var1, var2, var3, 20), "20")
@Html.ActionLink<SearchController>(sc => sc.Foo(var1, var2, var3, 50), "50");
@Html.ActionLink<SearchController>(sc => sc.Foo(var1, var2, var3, -1), "All");
}
같은 것을 쓸 수
하지만이 호출기를 사용할 수있는 각 모델 유형에 대해이 작업을 수행해야합니다.이 작업을 너무 과소 평가하거나이 작업을 완전히 거쳐야 할 수도 있지만, 누군가에게 통찰력이 있는지 묻고 싶다고 생각했습니다.
현재 페이저는 IPagedProgramList
(IPagination<ProgramDTO> { get; }
)을 제공하는 뷰에서만 호출되며,이 인터페이스를 구현하는 두 개의 ViewModel (간단한 검색 및 고급 검색)이 있습니다. 그러나이 프로젝트가 성장하고 해당 인터페이스를 사용하는 새로운 ViewModels을 추가하면 호출기 부분 뷰를 업데이트해야합니다. 잘못된/확대/축소되지 않습니다.
페이지 크기를 제어하는 HTML ''태그를 사용할 수 없습니까? 요소에'pageSize'의 id를 주면 ActionResult에서 해당 매개 변수를 찾습니다 (nullable인지 확인하십시오). 그에 따라 페이지 크기를 설정하십시오. null 인 경우 기본값을 설정하십시오. –
조금 까다 롭긴하지만 무언가를하고 있다고 생각합니다. jQuery를 사용하여 select를 사용하려고합니다. 'onchange (function() {$ (".pager a")} ... each (... // PageSize 매개 변수를 대체하십시오);});'그럴 수도 있지만 잘 모르겠다. 그것은해야한다. :) –