PDA

View Full Version : PagedList



resident
جمعه 23 اسفند 1392, 02:30 صبح
سلام.
من برای مدیریت نحوه نمایش صفحات گرید(pagination) به توصیه ی دوستان رفتم سراغ PagedList.
اما مشکلی که هست اینه که چیجینگ رو روی اطلاعاتی که از بانک میاره انجام میده. من میخوام تعداد کل صفحات و شماره صفحه جاری رو بهش بدم اون فقط نمایشش رو مدیریت کنه. کاربر هر صفحه ای رو درخواست کرد، ajax ای آورده میشه..
برای این مورد کسی راه حلی داره؟

مهدی کرامتی
جمعه 23 اسفند 1392, 08:38 صبح
دستوراتی که در اکشن مربوط در کنترلر استفاده می کنید و اطلاعات رو به PagedList پاس میده بالطبع استفاده از توابع Skip و Take در Linq است. کار واقعی Paging رو اون دستورات انجام می دهند.

resident
جمعه 23 اسفند 1392, 12:05 عصر
دستوراتی که در اکشن مربوط در کنترلر استفاده می کنید و اطلاعات رو به PagedList پاس میده بالطبع استفاده از توابع Skip و Take در Linq است. کار واقعی Paging رو اون دستورات انجام می دهند.

مسئله رو بد بیان کردم.
من الان مشکلی با اوردن اطلاعات صفحه ی x ندارم. میخوام مثلا اگر روی صفحه 6 کلیک کردم، 2 تا قبل از 6 و 4 تا بعد از 6 رو نشون بده(بازه ای از صفحات رو نشون بده). مدیریت این موضوع مدنظرم بود...

مهدی کرامتی
جمعه 23 اسفند 1392, 12:24 عصر
فکر کنم تو راهنمای paged list باید دنبال پاسخ بگردی.

resident
جمعه 23 اسفند 1392, 12:34 عصر
سپاسگـــــــزارم

younesdoost
شنبه 24 اسفند 1392, 00:21 صبح
سلام.

همونطور که گفتی تا الان تونستی مدل پیج شده رو به ویو پاس بدی.برای اون مساله که گفتی پکج PagedList.Mvc راه حل هایی داره.پیش نیاز این پکیج، پکیج PagedList هستش.بعد از اینکه مدل رو ToPagedList کردی و به ویو پاس دادی اون آخر ویوت یه همچین کدی بذار:


@using PagedList.Mvc;
@Html.PagedListPager((PagedList.IPagedList)Model, page => Url.Action("Index", new RouteValueDictionary() {
{ "page", page }
}), PagedListRenderOptions.OnlyShowFivePagesAtATime)


اون آپشنی که آخر کد نوشتم کاری که خواستی رو انجام میده.داکیومنهای این پکیج رو که بخونی پیج خوردن آژاکسی هم داره.تو http://nuget.org سرچش کن.

resident
شنبه 24 اسفند 1392, 08:06 صبح
سلام.

همونطور که گفتی تا الان تونستی مدل پیج شده رو به ویو پاس بدی.برای اون مساله که گفتی پکج PagedList.Mvc راه حل هایی داره.پیش نیاز این پکیج، پکیج PagedList هستش.بعد از اینکه مدل رو ToPagedList کردی و به ویو پاس دادی اون آخر ویوت یه همچین کدی بذار:


@using PagedList.Mvc;
@Html.PagedListPager((PagedList.IPagedList)Model, page => Url.Action("Index", new RouteValueDictionary() {
{ "page", page }
}), PagedListRenderOptions.OnlyShowFivePagesAtATime)


اون آپشنی که آخر کد نوشتم کاری که خواستی رو انجام میده.داکیومنهای این پکیج رو که بخونی پیج خوردن آژاکسی هم داره.تو http://nuget.org سرچش کن.


من با استفاده کردنش مشکلی ندارم.
pagedlist میاد اطلاعاتی رو که بهش دادیم صفحه بندی می کنه اما من نمیخوام اینطور باشه. من همیشه اطلاعات یک پیج رو میارم ولی میخوام صفحه بندی کل اطلاعاتم انجام بشه.

برای اینکار یه کلاس پیدا کردم که این کار رو انجام میده.