2012-06-15 42 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