2012-06-15 2 views
2

В настоящее время я использую PagedList (https://github.com/TroyGoode/PagedList/) для управления моей страницей в приложении ASP.NET MVC.Помощник для PagedList, поддерживающий ненавязчивый Ajax в ASP.NET MVC

С сегодняшнего дня я начал конвертировать некоторые части приложения для использования 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

Я добавил поддержку ненавязчивым AJAX:

https://github.com/TroyGoode/PagedList/issues/26#issuecomment-6471793

+2

Я закончил тем, что создал свою собственную реализацию, я думаю, что для вас нужна серьезная работа. – NoPyGod

+0

Лот из 404-х годов там Трой! –

+1

Ссылки all 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^= "/"] гарантирует, что будут изменены только ссылки кликов. Если вы не используете это, greyed out Предыдущая ссылка будет доступна для кликов.

+0

Я добавил, не Hacky поддержка: HTTPS://github.com/TroyGoode/PagedList/issues/26#issuecomment-6471793 – Troy

+0

Это не работает. – gaurav

+0

Попробуйте это @gauravvgat https://github.com/kwerty/PagedList – NoPyGod

Смежные вопросы