Telerik が提供する MVC ラッパーを使用せずに、ASP.NET MVC 4 で serverGrouping のサーバー側部分を実装する方法を知っている人はいますか?
serverPaging、serverSorting、および serverFiltering が機能していますが、グループ化されたデータを構造化して送信する方法についての手がかりがありません。
これは、ページングされ、並べ替えられ、フィルター処理されたデータを送信するために使用しているコードです。
public class TicketGridController : ApiController
{
private SupplierDataContext db = new SupplierDataContext();
HttpRequest request = HttpContext.Current.Request;
// GET api/Tickets
public Response Get()
{
int skip = request["skip"] == null ? 0 : int.Parse(request["skip"]);
int take = request["take"] == null ? 10 : int.Parse(request["take"]);
string group = request["group"] == null ? "" : request["group"];
string status = request["filter[filters][0][value]"] == null ? "" : request["filter[filters][0][value]"];
string sort = request["sort[0][field]"] == null ? "" : request["sort[0][field]"];
bool sortUp = request["sort[0][dir]"] == null ? true : (request["sort[0][dir]"] == "asc" ? true : false);
var Tickets = db.Tickets.ToList();
if (!string.IsNullOrEmpty(status)) {
Tickets = Tickets.Where(t => t.Issues.Where(i => i.Status == 1).Count() > 0).ToList();
}
switch (sort) {
case "TicketID":
if (sortUp) Tickets = Tickets.OrderBy(t => t.TicketID).ToList();
else Tickets = Tickets.OrderByDescending(t => t.TicketID).ToList();
break;
case "TicketName":
if (sortUp) Tickets = Tickets.OrderBy(t => t.TicketName).ToList();
else Tickets = Tickets.OrderByDescending(t => t.TicketName).ToList();
break;
case "Status":
if (sortUp) Tickets = Tickets.OrderBy(t => t.Status).ToList();
else Tickets = Tickets.OrderByDescending(t => t.Status).ToList();
break;
default:
Tickets = Tickets.OrderByDescending(t => t.DateModified).ToList();
break;
}
// ---------------------------------
// ADD GROUPING SOMEHOW!?
// ---------------------------------
List<TicketDisplayObject> ts = new List<TicketDisplayObject>();
foreach (Ticket t in Tickets.Skip(skip).Take(take))
{
ts.Add(new TicketDisplayObject(t));
}
return new Response(ts.ToArray(), Tickets.Count());
}
protected override void Dispose(bool disposing)
{
db.Dispose();
base.Dispose(disposing);
}
}
グループ化ビットを実装する方法を知っている人はいますか?
前もって感謝します!