2012-06-14 35 views
1

我没有使用网格,只是使用MvcContrib Pager。我对寻呼机(这样我就可以在结果的顶部和底部容易地显示它)创建的局部视图,它调用@Html. Pager方法像这样:MvcContrib Pager - 更改页面大小

@Html.Pager(Model.PagedPrograms).First("<<").Last(">>").Next(">").Previous("<").Format("Item {0} - {1} of {2} ") 

这只要工作时无需额外的调整,因为所有的参数通过QueryString传递给页面,因为Pager知道在URL上重建它们。

我想给用户改变页面大小(例如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使用该接口,我将不得不更新寻呼机局部视图,这似乎不好/不缩放/等。

+1

不能你只是有一个HTML''