servicestack,kendo-grid,kendo-asp.net-mvc,Kendo Ui,servicestack,Kendo Grid,Kendo Asp.net Mvc" /> servicestack,kendo-grid,kendo-asp.net-mvc,Kendo Ui,servicestack,Kendo Grid,Kendo Asp.net Mvc" />

Kendo ui rid但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。这看起来很棒。你

Kendo ui rid但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。这看起来很棒。你,kendo-ui,servicestack,kendo-grid,kendo-asp.net-mvc,Kendo Ui,servicestack,Kendo Grid,Kendo Asp.net Mvc,rid但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。这看起来很棒。你可以发布你的完整插件,这将是非常有帮助的其他人必须集成到剑道。这似乎很好。你可以发布你的完整插件,这将是非常有帮助的其他人必须集成到剑道。这似乎很好。你可以发布你的完整插件,这将是非常有帮助的其他人必须集成到剑道。这似乎很好。你可以发布你的完整


rid但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。我不太了解KendoUI网格,但你可以用jQGrid做类似的事情。这看起来很棒。你可以发布你的完整插件,这将是非常有帮助的其他人必须集成到剑道。这似乎很好。你可以发布你的完整插件,这将是非常有帮助的其他人必须集成到剑道。这似乎很好。你可以发布你的完整插件,这将是非常有帮助的其他人必须集成到剑道。这似乎很好。你可以发布你的完整插件,这将是非常有帮助的其他人融入剑道。
public class KendoQueryBase : IKendoFilter, IKendoSort, IKendoPaged
{
    public FilterTerm Filter { get; set; }
    public List<SortTerm> Sort { get; set; }

    public int? Page { get; set; }
    public int? PageSize { get; set; }
    public int? Skip { get; set; }
    public int? Take { get; set; }
}
class KendoQueryPlugin : IPlugin
{
    public void Register(IAppHost appHost)
    {
        appHost.GlobalRequestFilters.Add((req, resp, dto) =>
        {
            if (dto is KendoQueryBase)
            {
                KendoQueryBase qb = dto as KendoQueryBase;
                if (qb.Sort == null) qb.Sort = new List<SortTerm>();
                Dictionary<string, string> qs = req.QueryString.ToDictionary();

                // Create the Sort Terms
                var i = 0;
                while (qs.ContainsKey("sort[{0}][field]".Fmt(i)))
                {
                    qb.Sort.Add(new SortTerm()
                    {
                        Field = qs["sort[{0}][field]".Fmt(i)],
                        Dir = qs["sort[{0}][dir]".Fmt(i)]
                    });
                    i++;
                }

                i = 0;
            }
        });
    }
}
public static class PagingExtensions
{
    public static SqlExpression<T> Page<T>(this SqlExpression<T> exp, int? page, int? pageSize)
    {
        if (!page.HasValue || !pageSize.HasValue)
            return exp;

        if (page <= 0) throw new ArgumentOutOfRangeException("page", "Page must be a number greater than 0.");
        if (pageSize <= 0) throw new ArgumentOutOfRangeException("pageSize", "PageSize must be a number greater than 0.");

        int skip = (page.Value - 1) * pageSize.Value;
        int take = pageSize.Value;

        return exp.Limit(skip, take);
    }
}
if (!request.Page.HasValue) request.Page = 1;
if (!request.PageSize.HasValue || request.PageSize < 0 || request.PageSize > 100)
    request.PageSize = 10;

var exp = Db.From<Your Database Object>
....
var results = Db.Select<YourDTO>(exp.Page(request.Page, request.PageSize)),