View Full Version : پیجینگ بدون پست بک در mvc4
نیکناز
چهارشنبه 10 مهر 1392, 10:23 صبح
سلام دوستان و مهندسان عزیز
من یه سری لیست دارم که صفحه بندی است تو هر صفحه یه تعدادی
روشی که الان استفاده میکنم همراه با پست بک است
تو نت هر چی گشتم برای pagin بدون postback تمام صفحات از
ToPagedList صحبت میکنه ولی تو برنامه مینویسم نمیشناسه
forestasphalt
یک شنبه 14 مهر 1392, 22:56 عصر
dll مربوطه رو اضافه کردی؟
با nuget کلمه PagedList رو جستجو کن و نصبش کن کارت راه میافته
من صفحه بندی لیست هام با jpaginate انجام میدم خیلی هم ازش راضی ام!
hakim22
دوشنبه 15 مهر 1392, 07:32 صبح
سه روش کلی برای Paging وجود داره.
یکی اینکه کار جستجو و صفحه بندی سمت سرور انجام بشه و فقط صفحه ی مورد نظر به کاربر ارسال بشه. برای جابجا شدن بین صفحات از routeValue یا روش هایی مثل اون استفاده میشه. همه ی کدها با LINQ نوشته میشه و تقریبا راحت و بهینه است، به جز Refresh شدن کامل صفحه که زیاد مورد پسند نیست.
یکی اینکه همه ی اطلاعات به کلاینت ارسال بشه و بعد با استفاده از جاوا اسکریپت صفحه بندی بشه (jPaginate) یا انواع Grid ها و کامپوننتهای جاوا اسکریپت و jQuery موجود.
یکی هم اینکه اطلاعات با استفاده از ajax از سرور خواسته بشه و صفحه به صفحه به کاربر نمایش داده بشه. میشه با WebAPI پیاده سازی بشه و خیلی هم پر طرفداره ولی کار بیشتری میبره.
برای آشنا شدن با روش اول مقاله ی زیر رو پیشنهاد میکنم که با PagedList عمل صفحه بندی رو انجام میده.
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application
نیکناز
پنج شنبه 18 مهر 1392, 07:06 صبح
dll مربوطه رو اضافه کردی؟
با nuget کلمه PagedList رو جستجو کن و نصبش کن کارت راه میافته
من صفحه بندی لیست هام با jpaginate انجام میدم خیلی هم ازش راضی ام!
مرسی دوست عزیزم
اگه امکانش هست یه سمپل یه لینک
:قلب:
نیکناز
پنج شنبه 18 مهر 1392, 07:10 صبح
سه روش کلی برای Paging وجود داره.
یکی اینکه کار جستجو و صفحه بندی سمت سرور انجام بشه و فقط صفحه ی مورد نظر به کاربر ارسال بشه. برای جابجا شدن بین صفحات از routeValue یا روش هایی مثل اون استفاده میشه. همه ی کدها با LINQ نوشته میشه و تقریبا راحت و بهینه است، به جز Refresh شدن کامل صفحه که زیاد مورد پسند نیست.
یکی اینکه همه ی اطلاعات به کلاینت ارسال بشه و بعد با استفاده از جاوا اسکریپت صفحه بندی بشه (jPaginate) یا انواع Grid ها و کامپوننتهای جاوا اسکریپت و jQuery موجود.
یکی هم اینکه اطلاعات با استفاده از ajax از سرور خواسته بشه و صفحه به صفحه به کاربر نمایش داده بشه. میشه با WebAPI پیاده سازی بشه و خیلی هم پر طرفداره ولی کار بیشتری میبره.
برای آشنا شدن با روش اول مقاله ی زیر رو پیشنهاد میکنم که با PagedList عمل صفحه بندی رو انجام میده.
http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-application
مرسی دوست عزیزم
من میخوام روشی استفاده کنم که مثلا وقتی یه لیست 5000 تایی رو پیجینگ میدم بالاترین سرعت و بهترین شرایط برای کاربرم فراهم کنم
اگه میشه بیشتر راهنمایی کنید . روش اول در این شرایط بهترین روش هست؟
ممنونم
star_rh
پنج شنبه 18 مهر 1392, 10:55 صبح
تو این لینک آموزش فارسی pagination هست با یکم تغییر می تونی استفاده کنی مثلا با ajax یا برای سریعتر json یه درخواست رو انجام میدی و لیست تولید شوده رو دریافت و نمایش میدی.
http://www.8np.ir/Post/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%A7%DB%8C%D8%AC%D8%A7%D8%AF-%D8%B5%D9%81%D8%AD%D9%87-%DA%AF%D8%B0%D8%A7%D8%B1%DB%8C-%D8%AF%D8%B1-ASP-Net-MVC
hakim22
پنج شنبه 18 مهر 1392, 15:56 عصر
اول اینکه اصولا نمایش دادن این حجم اطلاعات به کاربر بی معنی است. 5000 تا اگر 50 تایی باشه میشه 100 صفحه !
شما باید یک فیلتریگ و جستجو داشته باشید و داده ها رو بر مبنای تاریخ یا محتوا و ... فیلتر کنید .
قبلا ار PagedList که در بالا گفته شده استفاده کردم و برای تست نتیجه اش برای 12000 رکورد به نسبت خوب بود. برای کمتر از 500 رکورد خیلی عالی عمل میکنه.مخصوصا اگر به درستی Cache کنید. مشکل اینه که باید اول با LINQ همه ی داده ها درون کنترلر خوانده شوند و بعد نتیجه به مدل به صورت صفحه به صفحه ارسال شود.
خیلی خوب بود اگر میتونست یک مرحله جلوتر عمل کنه و کلا از دیتابیس فقط اون بخشی رو که لازمه بارگذاری کنه.
یک کلک اینه که شما فقط ID رکوردهایی رو که میخواهید دانلود کنید. بعد با @Ajax هربار که صفحه عوض میشه ردیف هارو بارگذاری کنید. سرعتش بی نظیره.
برای اینکار باید از PartialView استفاده کنید. (برای هر ردیف)
یک روش اینه که مثل فیس بوک وقتی کاربر در اسکرول پایین میاد روکوردهای جدید رو بارگذاری کنید. اینکار با ajax انجام میشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.