У меня есть список нескольких сортировщиков в контроллере для 3 страниц, однако, когда я сортирую по таблице, а не по индексной странице. Я вернулся на главную страницу.
Я думал, что изменение названия сортировщика, чтобы оно изменилось, сработало.
public async Task<ActionResult> DashBoard(string sortOrder, string currentFilter,string searchString, int? page)
{
ViewBag.CurrentSort = sortOrder;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder == "Date" ? "date_desc" : "Date";
if (searchString != null)
{
page = 1;
}
else
{
searchString = currentFilter;
}
ViewBag.CurrentFilter = searchString;
var clinicalAssets = from s in db.ClinicalAssets.Include(c => c.ModelName) select s;
if (!String.IsNullOrEmpty(searchString))
{
clinicalAssets = clinicalAssets.Where(s => s.SerialNo.Contains(searchString)
|| s.PoNo.Contains(searchString));
}
switch (sortOrder)
{
case "name_desc":
clinicalAssets = clinicalAssets.OrderByDescending(s => s.PoNo);
break;
case "Date":
clinicalAssets = clinicalAssets.OrderBy(s => s.PurchaseDate);
break;
case "date_desc":
clinicalAssets = clinicalAssets.OrderByDescending(s => s.WarrantyEndDate);
break;
default:
clinicalAssets = clinicalAssets.OrderBy(s => s.ClinicalAssetID);
break;
}
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(await clinicalAssets.ToPagedListAsync(pageNumber, pageSize));
}
public async Task<ActionResult> Arjo(string sortOrder2, string currentFilter2, string searchString2, int? page)
{
ViewBag.CurrentSort = sortOrder2;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder2) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder2 == "Date" ? "date_desc" : "Date";
if (searchString2 != null)
{
page = 1;
}
else
{
}
ViewBag.CurrentFilter = searchString2;
var clinicalAssets = from s in db.ClinicalAssets
where (s.AssetTypeID.Equals (2) || s.AssetTypeID.Equals(3) )
select s;
if (!String.IsNullOrEmpty(searchString2))
{
clinicalAssets = clinicalAssets.Where(s => s.SerialNo.Contains(searchString2)
|| s.PoNo.Contains(searchString2));
}
switch (sortOrder2)
{
case "name_desc":
clinicalAssets = clinicalAssets.OrderByDescending(s => s.PoNo);
break;
case "Date":
clinicalAssets = clinicalAssets.OrderBy(s => s.PurchaseDate);
break;
case "date_desc":
clinicalAssets = clinicalAssets.OrderByDescending(s => s.WarrantyEndDate);
break;
default:
clinicalAssets = clinicalAssets.OrderBy(s => s.ClinicalAssetID);
break;
}
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(await clinicalAssets.ToPagedListAsync(pageNumber, pageSize));
}
public async Task<ActionResult> Index(string sortOrder1, string currentFilter1, string searchString1, int? page)
{
ViewBag.CurrentSort = sortOrder1;
ViewBag.NameSortParm = String.IsNullOrEmpty(sortOrder1) ? "name_desc" : "";
ViewBag.DateSortParm = sortOrder1 == "Date" ? "date_desc" : "Date";
if (searchString1 != null)
{
page = 1;
}
else
{
searchString1 = currentFilter1;
}
ViewBag.CurrentFilter = searchString1;
var clinicalAssets = from s in db.ClinicalAssets.Include(c => c.ModelName) select s;
if (!String.IsNullOrEmpty(searchString1))
{
clinicalAssets = clinicalAssets.Where(s => s.SerialNo.Contains(searchString1)
|| s.PoNo.Contains(searchString1));
}
switch (sortOrder1)
{
case "name_desc":
clinicalAssets = clinicalAssets.OrderByDescending(s => s.PoNo);
break;
case "Date":
clinicalAssets = clinicalAssets.OrderBy(s => s.PurchaseDate);
break;
case "date_desc":
clinicalAssets = clinicalAssets.OrderByDescending(s => s.WarrantyEndDate);
break;
default:
clinicalAssets = clinicalAssets.OrderBy(s => s.ClinicalAssetID);
break;
}
int pageSize = 10;
int pageNumber = (page ?? 1);
return View(await clinicalAssets.ToPagedListAsync(pageNumber, pageSize));
}
Я бы ожидал, что каждая страница отфильтрует свою таблицу, а не таблицы других страниц.