mvc でソートとページングのデモを検索しています。デモは正常に機能しています。デフォルトのページ サイズ 5 を指定しました。ドロップダウン リストを使用してページ サイズを動的に変更するには、どのような変更を行う必要がありますか? コードの一部:-
コントローラーアクション:-
public ActionResult Index(string searchBy,string search,int? Page,string sortBy)
{
ViewBag.SortNameParameter = string.IsNullOrEmpty(sortBy) ? "Name desc" : "";
ViewBag.SortGenderParameter = sortBy == "Gender" ? "Gender desc" : "Gender";
var employees = db.Employees.AsQueryable();
if(searchBy == "Gender")
{
employees = employees.Where(x => x.EmpGender == search || search == null);
}
else
{
employees = employees.Where(x => x.EmpName.StartsWith(search) || search == null);
}
switch(sortBy)
{
case "Name desc":
employees = employees.OrderByDescending(x=>x.EmpName);
break;
case "Gender desc":
employees = employees.OrderByDescending(x=>x.EmpGender);
break;
//case "Gender ":
//employees = employees.OrderByDescending(x=>x.EmpGender);
//break;
default:
employees = employees.OrderByDescending(x=>x.EmpName);
break;
}
return View(employees.ToPagedList(Page ?? 1, 5));
}
そして、以下のように最後にpagedlistpagerをビューに追加しました:-
@Html.PagedListPager(Model, Page => Url.Action("Index", new { Page, searchBy = Request.QueryString["searchBy"], search = Request.QueryString["search"], sortBy = Request["sortBy"] }),
new PagedListRenderOptions() { Display = PagedListDisplayMode.IfNeeded, DisplayPageCountAndCurrentLocation = true, DisplayItemSliceAndTotal = true })
こんにちは、jquery の dd change イベントでページ サイズを dd 値として送信するだけです。そして最後に、コントローラー アクション メソッドで、その受信パラメーターを ToPagedList() メソッドにサブシテットします。
例:
public ActionResult Index(string searchBy,string search,int? Page,string sortBy,int ddpagesize)
{
ViewBag.SortNameParameter = string.IsNullOrEmpty(sortBy) ? "Name desc" : "";
ViewBag.SortGenderParameter = sortBy == "Gender" ? "Gender desc" : "Gender";
var employees = db.Employees.AsQueryable();
if(searchBy == "Gender")
{
employees = employees.Where(x => x.EmpGender == search || search == null);
}
else
{
employees = employees.Where(x => x.EmpName.StartsWith(search) || search == null);
}
switch(sortBy)
{
case "Name desc":
employees = employees.OrderByDescending(x=>x.EmpName);
break;
case "Gender desc":
employees = employees.OrderByDescending(x=>x.EmpGender);
break;
//case "Gender ":
//employees = employees.OrderByDescending(x=>x.EmpGender);
//break;
default:
employees = employees.OrderByDescending(x=>x.EmpName);
break;
}
return View(employees.ToPagedList(Page ?? 1, ddpagesize));
}
dropdownchange イベントについては、この記事が役立ちます: http://www.c-sharpcorner.com/blogs/drop-down-list-selected-index-changed-event-in-mvc
ありがとう
カーティク
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加