sgjsakura / AspNetCore

ASP.NET Core Extension Library
Apache License 2.0
162 stars 26 forks source link

Example for paging with routes #10

Closed eBerdnA closed 8 years ago

eBerdnA commented 8 years ago

Even though your documentation is quite extensive I wasn't unable to achieve the following.

I would like to use the pager for paging based on routes, e.g.

Default paging link: /index?page=3 (which is working fine) desired outcome: /index/page/3

Unfortunately I wasn't able to do this maybe due to the fact that I didn't fully understand how to use the different link generators from your documentation.

Therefore I would be glad if you could tell me whether this is possible and if yes provide an example for this. Thanks.

sgjsakura commented 8 years ago

HI, actually, the main problem for easily customize the generated link is that if your page have extra parameters more than Controller and Action name, all string-based generation manner may accidently missing some parameters.

Nevertheless, a simple implementatino for your requirement may be:

<pager item-default-link='PagerItemLinkGenerators.Format("/index/page/{0}")' />

Currently automatically detect and append url segement to current URL is not supported, you may have to set link generators for different pages. You may create a new generator to do this job but it may be difficult since there's no easy way to understand the meaning for each URL segment.

Wish it helps, and please feel free to reply if you have any new question :-)

eBerdnA commented 8 years ago

Thanks for your quick response. Unfortunately I do get the following error when I try to use your example.

'PagerItemLinkGenerators' does not contain a definition for 'Format'

Am I missing a using statement?

sgjsakura commented 8 years ago

Hi, the Format method is provided on the version 2.0.5, please try to update your package and check if the problem is solved. Thank you!

eBerdnA commented 8 years ago

When trying to use any version > 2.0.2-rc2 of 'Sakura.AspNetCore.Mvc.PagedList' I do get the following error when packages are restored:

`Package Sakura.AspNetCore.Mvc.PagedList 2.0.3 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package Sakura.AspNetCore.Mvc.PagedList 2.0.3 supports:

sgjsakura commented 8 years ago

HI, Unforetunately, I cannot reproduce your problem. I'm using .NET Tools For Visual Studio 2015 Preview 2, the sdk version in global.json is 1.0.0-preview2-003121. I've tryed to add a reference of Sakura.AspNetCore.Mvc.PagedList from version 2.0.3 to 2.0.5 and none error is generated. It seems this problem is not caused by the package. Could you make a double check for you project.json, especially for the frameworks parts? If the problem still occurs, could you please send me a demo solution for further diagnostics?

Thank you for you cooperation and help :-)

eBerdnA commented 8 years ago

I was really using an older version of .NET Tools. After upgrading these tools I can now use version 2.0.5 of Sakura.AspNetCore.Mvc.PagedList and your suggestion regarding the pager configuration is working as expected. Thanks for your help.