2012-06-15 40 views
2

我目前使用PagedList(https://github.com/TroyGoode/PagedList/)来管理ASP.NET MVC应用程序中的分页。帮助PagedList支持ASP.NET MVC中的不显眼的Ajax

截至今天,我已经开始将应用程序的某些部分转换为使用AJAX,而ASP.NET MVC非常容易。

但是我遇到的第一个问题是PagedList.MVC helper @ Html.PagedListPager与任何不显眼的AJAX都没有任何的兼容性。

我真正需要做的是在分页链接中添加一些属性(见下文),其余的内容将自动处理。然而,PagedListPager并没有提供任何方式来做到这一点。

data-ajax="true" data-ajax-mode="replace" data-ajax-update="#SearchResults" 

有没有人碰到这个,发现了一个优雅的解决方案?

+0

http://prideparrot.com/blog/archive/2012/6/creating_a_custom_ajax_helper – VJAI

回答

5
+2

我最终创建了自己的实现,我认为你需要一些认真的工作。 – NoPyGod

+0

很多404的那里特洛伊! –

+1

链接全部404.我手动找到任何需要它们的视图/控制器代码: https://github.com/troygoode/PagedList/blob/master/src/PagedList.Mvc4.Example/Controllers/UnobtrusiveAjaxController.cs https://github.com/troygoode/PagedList/blob/master/src/PagedList.Mvc4.Example/Views/UnobtrusiveAjax/Index.cshtml https://github.com/troygoode/PagedList/blob/master/src /PagedList.Mvc4.Example/Views/UnobtrusiveAjax/UnobtrusiveAjax_Partial.cshtml –

3

我相信这可能是最优雅的解决方案。

@Html.PagedListPager((IPagedList)Model.Articles, page => Url.Action("Index", new { s = Model.SearchString, page = page })) 

<script> 


    var pages = $('#pages a[href^="/"]'); 

    pages.attr('data-ajax', 'true') 
     .attr('data-ajax-mode', 'replace') 
     .attr('data-ajax-update', '#SearchResults') 
     .attr('data-ajax-method', 'post'); 


</script> 

快速jQuery的黑客加入到各个环节中的必要属性,以便让他们在不显眼的AJAX模块被拾起。

[href^=“/”]部分确保只有可点击链接将被修改。如果你不使用这个,灰色的前一个链接将是可点击的。一个不引人注目的AJAX

+0

我添加非哈克支持:HTTPS:/ /github.com/TroyGoode/PagedList/issues/26#issuecomment-6471793 – Troy

+0

它不起作用。 – gaurav

+0

试试这个@gauravvgat https://github.com/kwerty/PagedList – NoPyGod