حذف فیلترهای جستجو هنگام جابجایی صفحات در Asp Core
با سلام
قطعه کد زیر را در یک view دارم
@{
NotationSearchTypeModel2 RN = new NotationSearchTypeModel2();
RN.ID = ViewBag.searchTypeselected;
List<NotationSearchTypeModel2> ListRecivedNotationSearchTypeModel = RN.GetNotationTypeModel();
}
<div class="content">
<form>
<div class="panel col-md-12" style="border:1px solid gray; background-color:#e6e2e2; text-align:center;
padding:10px 6px 5px 6px; border-radius:2px; margin-bottom:20px;">
<span style="margin-bottom:5px;">جستجو بر اساس :</span>
<select asp-for="@RN.ID" style="border:1px solid gray; margin-bottom:5px;" id="searchTypeselected" name="searchTypeselected"
asp-items="@(new SelectList(ListRecivedNotationSearchTypeModel,"ID","Title"))">
</select>
<button type="submit">
جستجو
</button>
</div>
</form>
<div class="panel panel-body container-fluid"
style="border-radius:2px; box-shadow:3px 1px 1px 0 gray; background-color:#e6e2e2">
<table class="table table-bordered" style="background-color:white;">
<thead>
<tr style="font-size:14px; font-weight:bold; background-color:#c4bdbd;">
<td>فرستنده</td>
</tr>
</thead>
<tbody id="tabledraftlist">
@foreach (var item in Model)
{
<tr style="font-size:12px;">
<td style="text-align:right;">@item.FullName_sender</td>
</tr>
}
</tbody>
</table>
<nav class="pagenav" style="text-align:center;">
@await this.Component.InvokeAsync("Pager", new { PagingList = this.Model })
</nav>
</div>
</div>
همچنین قطعه کد زیز را در Controller مربوطه دارم.
public IActionResult Index(int page = 1, byte searchTypeselected)
{
ViewBag.searchTypeselected = searchTypeselected;
var model = PagingList.Create(_inotation.SentReciveMessagesReport(searchTypeselected), 10, page);
return View(model);
}
هنگام اجزای کد فوق هیچ مشکلی نیست. مشکل زمانی پیش میاد که من پارامترهایی را جهت جستجو انتخاب میکنم. مثلا از لیست باز شونده گزینه ایی را جهت شرط در جستجو انتخاب میکنم. یا تاریخ از تا را مقدار دهی میکنم و دکمه جستجو را میرنم. عملیات جستجو انجام میشود. ولی هنگامی که روی دکمه صفحه مثلا 2 کلیک میکنم همه اطلاعات را نمایش میدهد. در حقیقت پارامترهای جستجو همگی خالی میشوند و مقادیری که انتخاب کرده بودم همگی خالی میشوند و جستجو روی همه جدول انجام میشود و گزینه های انتخابی من سمت Controller نادیده گرفته میشوند.
چگونه میتوانم با زدن دکمه شماره های صفحات یعد، مانع از خالی شدن پارامترهایی که به Controller پاس میدهم بشوم و جستجو بر اساس پارامترهایی که انتخاب کرده ام برای صفحات بعد هم در نظر گرفته شود؟
با سپاس
پاسخ هوش مصنوعی
برای حفظ مقادیر فیلترهای جستجو هنگام جابجایی بین صفحات در ASP.NET Core، می توانید مقادیر جستجو را به URL صفحه بندی اضافه کنید. این کار را می توان با اضافه کردن پارامترهای جستجو به لینک های صفحه بندی انجام داد. به عنوان مثال، شما می توانید پارامتر `searchTypeselected` را به URL های صفحه بندی اضافه کنید.
به این منظور، می توانید کد خود را به شکل زیر تغییر دهید:
<nav class="pagenav" style="text-align:center;">
@await this.Component.InvokeAsync("Pager", new { PagingList = this.Model, searchTypeselected = ViewBag.searchTypeselected })
</nav>
سپس در کامپوننت Pager خود، باید این پارامتر را به لینک های صفحه بندی اضافه کنید. به طور مثال:
public class PagerViewComponent : ViewComponent
{
public async Task InvokeAsync(PagingList pagingList, int searchTypeselected)
{
ViewBag.SearchTypeselected = searchTypeselected;
// سایر کدها برای تولید لینک های صفحه بندی
return View(pagingList);
}
}
در نهایت، هنگام ایجاد لینک های صفحه بندی، مطمین شوید که پارامتر `searchTypeselected` در URL گنجانده شده است تا مقادیر فیلتر هنگام جابجایی بین صفحات حفظ شوند.
با این روش، زمانیکه کاربر روی دکمه های صفحه بندی کلیک می کند، پارامترهای جستجو در URL حفظ خواهند شد و در نتیجه، جستجو شما منطبق بر این مقادیر ادامه خواهد یافت.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2