مشکل صفحه بندی و ادغام با جستجو
با سلام
من زمانی که یک جستجو به شکل زیر انجام می دم و داخل ViewModel خودم فیلد زیاد دارم . توی صفحه اصلی مشکلی وجود نداره ولی بعد از اینکه به صفحه دوم می رم نتیجه جستجو عادی می شه و list معمولی برمی گردونه . داستان اینجاست که کاربر زمانی روی جستجو می زنه من ViewModel خودم رو پر می کنم ولی صفحه ۲ به بعد متد post اتفاق نمی افته و جستجو از کار می افته . می شه بفرمایید چطور حلش کنم ؟ برای نمایش کادر جستجو هم از یک partial استفاده می کنم
public ActionResult AllUsers(SearchViewModel search, int pageid = 1)
{
/// code
}
[HttpGet]
public ActionResult _SearchList()
{
return View();
}
[HttpPost]
public ActionResult _SearchList(SearchViewModel search)
{
search.SearchStatus = true;
return RedirectToAction("AllUsers", search);
}
ممنون
نقل قول: مشکل صفحه بندی و ادغام با جستجو
برای جستجوی همراه با صفحه بندی از PagedList استفاده کنید. ضمن اینکه اطلاعات جستجو بین دور درخواست جایی ذخیره نمیشه. باید با استفاده از یک فرم و ViewData اون رو از درخواست به درخواست بعدی پاس بدید.
نقل قول: مشکل صفحه بندی و ادغام با جستجو
نقل قول:
نوشته شده توسط
hakim22
برای جستجوی همراه با صفحه بندی از PagedList استفاده کنید. ضمن اینکه اطلاعات جستجو بین دور درخواست جایی ذخیره نمیشه. باید با استفاده از یک فرم و ViewData اون رو از درخواست به درخواست بعدی پاس بدید.
سلام
ممنون از شما . PagedList رو سرچ کردم و ایده خوبی هست و ازش از این به بعد استفاده می کنم . ولی داستان سر اینکه من نمی دونم الان این مقدار viewModel رو چطور با یک Viewdata از یک ویو به کنترل پاس بدم ؟ چون که من با یک تگ a دارم صفحه بندی رو می کنم و post اتفاق نمی افته .
ممنون می شم راهکاری بهم بدید به همراه یک مثال کوتاه چون واقعا مشکلی شده این موضوع
تشکر
نقل قول: مشکل صفحه بندی و ادغام با جستجو
سلام.
شما میتونید _SearchList خودتون دوباره عمل سرچ رو انجام بدین
یعنی متدی که با اون سرچ می کنید رو در صفحه بصورت hidden نگه دارید و بعد اون رو پاس بدین بصورت ajax و دوباره عمل سرچ رو انجام بدین و این بار صفحه 2 رو نشون بدید.
نقل قول: مشکل صفحه بندی و ادغام با جستجو
سلام
ممنون
ولی فکر می کنم یک راه منطقی تر و تمیز تر هم باشه برای این مورد . ممنون می شم راهنمایی کنن دوستان
تشکر
نقل قول: مشکل صفحه بندی و ادغام با جستجو
کنترلر از خودش حافظه نداره و وضعیت جاری سایت رو نگه داری نمیکنه.
شما می خواهید عبارت جستجو در فرم ثابت بمونه ولی کاربر بتونه بین صفحات گردش کنه. ساده ترین راه استفاده از PaginatedList هست.
حالا اگر میخواهید دستی این قابلیت رو پیاده کنید باید راهی پیدا کنید که اطلاعات بین Request ها در سرور شناسایی بشه.
هربار که کاربر روی شماره ی یکی از صفحات کلیک میکنه یک Request جدید به سرور ارسال میشه. این درخواست جدید هیچ درکی که قبلا موقعیت سایت کجا بوده نداره.
پس باید در هر درخواست مقدار شماره ی صفحه و عبارت جستجو شده رو به سرور ارسال کنید. و وقتی صفحه لود میشه اون مقدار رو جایی در صفحه پنهان کنید.
هر شماره ی صفحه یک لینکه و در اون لینک می توانید مقدار RouteValue رو قرار بدید و به سرور ارسال کنید.
نقل قول: مشکل صفحه بندی و ادغام با جستجو
دوست عزیز برای صفحه بندی روش های زیادی وجود داره که متداول ترین روش استفاده از PagedList هست که نمونش رو میتونید تو لینک زیر ببینید
https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-started/getting-started-with-ef-using-mvc/sorting-filtering-and-paging-with-the-entity-framework-in-an-asp-net-mvc-
application
بهینه تر اینه که عمل جستجو و صفحه بندی در داخل خود دیتابیس و توسط یک storeprocidure انجام بشه
میتونید از Jtable هم استفاده کنید