1
如果我只對2列進行排序,在本示例中爲「Bedrag」&「Datumbetaling」,則正常排序有效。無法對MVC 4中的3列進行排序 - ASP.net
當我想在第三欄添加一個名爲「StatusBetalingID」的排序時,那麼它只會按降序排列,如果我點擊列,如果再次點擊此列,它不會按升序排序。 當我不斷點擊前兩列「Bedrag」&「DatumBetaling」,然後它保持排序升序&降序。
這是我在控制器代碼:
public ActionResult Index(string sortBy)
{
ViewBag.SortBedragParameter = string.IsNullOrEmpty(sortBy) ? "Bedrag_desc" : "";
ViewBag.SortDatumParameter = sortBy == "DatumBetaling" ? "DatumBetaling_desc" : "DatumBetaling";
ViewBag.SortStatusParameter = sortBy == "StatusBetaling" ? "stat" : "Status_desc";
var betalingen = betalingBLL.GetAll();
switch (sortBy)
{
case "Bedrag_desc":
betalingen = betalingen.OrderByDescending(x => x.Bedrag);
break;
case "DatumBetaling_desc":
betalingen = betalingen.OrderByDescending(x => x.DatumBetaling);
break;
case "DatumBetaling":
betalingen = betalingen.OrderBy(x => x.DatumBetaling);
break;
case "Status_desc":
betalingen = betalingen.OrderByDescending(x => x.StatusBetalingID);
break;
case "stat":
betalingen = betalingen.OrderBy(x => x.StatusBetalingID);
break;
default:
betalingen = betalingen.OrderBy(x => x.Bedrag);
break;
}
return View(betalingen.ToList());
}
這裏是視圖代碼:
<th> <%: Html.ActionLink("Status Betaling", "Index", new { sortBy = ViewBag.SortStatusParameter}) %> </th>
<th> <%:Html.ActionLink("Datum Betaling", "Index", new { sortBy = ViewBag.SortDatumParameter}) %> </th>
<th> <%:Html.ActionLink("Bedrag", "Index", new { sortBy = ViewBag.SortBedragParameter }) %> </th>
所以它的實際工作,排序,但我不知道該怎麼用第三個參數/列來解決問題,繼續對這個問題進行排序。
你用排序客戶端的東西可能會更好。我用過[tablesorter](http://tablesorter.com/docs/),效果很好。爲您的控制器節省大量回調。 – James