【问题标题】:Kendo Grid, ASP.NET Web API and serverGroupingKendo Grid、ASP.NET Web API 和 serverGrouping
【发布时间】:2013-09-10 10:27:55
【问题描述】:

有谁知道如何在 ASP.NET MVC 4 中实现 serverGrouping 的服务器端部分 - 不使用 Telerik 提供的 MVC 包装器?

我有 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);
    }
}

有人知道如何实现分组位吗?

提前致谢!

【问题讨论】:

    标签: c# asp.net-mvc-4 asp.net-web-api telerik kendo-grid


    【解决方案1】:

    请参阅 githubnuget 上提供的 KendoGridbinderEx 项目

    如果这实现了您的需要,请告诉我。

    【讨论】:

      猜你喜欢
      • 2013-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-25
      • 1970-01-01
      相关资源
      最近更新 更多