Angularjs 角度中的kendo网格排序数据源查询字符串

Angularjs 角度中的kendo网格排序数据源查询字符串,angularjs,kendo-ui,kendo-grid,kendo-datasource,Angularjs,Kendo Ui,Kendo Grid,Kendo Datasource,使用剑道角度指令 <div kendo-grid k-data-source="MySource" k-filterable="true" k-pageable="true"></div> 数据加载很好(尽管我有一个字符串问题,它没有分页到第4页,而第4页可能与后端更相关) 我所做的一切就是调用asp.net控制器路由来返回数据,正如我提到的,分页似乎工作正常,但当我尝试使用可过滤的“get”查询字符串时,看起来有点像这样 /MyUrl?take=10&

使用剑道角度指令

<div kendo-grid k-data-source="MySource" 
   k-filterable="true" k-pageable="true"></div>
数据加载很好(尽管我有一个字符串问题,它没有分页到第4页,而第4页可能与后端更相关)

我所做的一切就是调用asp.net控制器路由来返回数据,正如我提到的,分页似乎工作正常,但当我尝试使用可过滤的“get”查询字符串时,看起来有点像这样

/MyUrl?take=10&skip=0&page=1&pageSize=10&filter%5Bfilters%5D%5B0%5Bfield%5D=LastName&filter%5Bfilters%5D.........value%5D=Smith
我的控制器看起来像这样

public JsonResult MyUrl(int pageSize = 10, int skip = 10, string sort = "", string filter="")
{
    // return jsonresult
}
public class PagingOption
{
    public PagingOption()
    {
        PageSizes = new List<int>();`enter code here`
    }

    /// <summary>
    /// Specifies the current page number.
    /// </summary>`enter code here`
    public int take { get; set; }

    /// <summary>
    /// Specifies the number of items to show in a page.
    /// </summary>
    public int skip { get; set; }
    public int page { get; set; }
    public int pagesize { get; set; }
    public List<SortDescription> sort  { get; set; }

    /// <summary>
    /// Specifies different page sizes.
    /// </summary>
    public IList<int> PageSizes { get; set; }
}

public class SortDescription
{
    public string field { get; set; }
    public string dir { get; set; }
}

该URL发生了什么,我的控制器设置是否正确?我是否需要为默认剑道网格设置参数映射?

这是默认参数映射正在执行的操作-将当前数据源状态传递给jQuery。您可以将状态作为JSON传递:

transport:{
  read : {
     url:"/MyUrl",
     type: "POST",
     contentType: "application/json"
  },
  parameterMap: function(options) {
     return JSON.stringify(options);
  }
},

创建这样一个类

public JsonResult MyUrl(int pageSize = 10, int skip = 10, string sort = "", string filter="")
{
    // return jsonresult
}
public class PagingOption
{
    public PagingOption()
    {
        PageSizes = new List<int>();`enter code here`
    }

    /// <summary>
    /// Specifies the current page number.
    /// </summary>`enter code here`
    public int take { get; set; }

    /// <summary>
    /// Specifies the number of items to show in a page.
    /// </summary>
    public int skip { get; set; }
    public int page { get; set; }
    public int pagesize { get; set; }
    public List<SortDescription> sort  { get; set; }

    /// <summary>
    /// Specifies different page sizes.
    /// </summary>
    public IList<int> PageSizes { get; set; }
}

public class SortDescription
{
    public string field { get; set; }
    public string dir { get; set; }
}

它会将查询参数转换为分页选项类

这是“更好的”,但是在我的mvc控制器中,排序和筛选的值在DataSourceRequest参数中将为空。DataSourceRequest仅适用于mvc包装器。我建议检查此选项作为替代:也许你也可以使用KendoGridBinderEx:,让我来看看知道这个是否也有效。