javascript - kendo grid refresh后改变排序与过滤,如何获取参数?

 书友73277355 发布于 2022-11-11 10:15

1.问题描述:

我的项目是kendo和angular相结合的,用到了jquery kendo的angular扩展。初始化kendo grid table时,并没有设置datasource,然后通过setDataSource和refresh方法刷新数据,然后过滤和排序,都能正常使用,我怎么获取过滤和排序的参数,用于其他ajax使用。

$scope.mainGridOptions.dataSource._filter $scope.mainGridOptions.dataSource.filter() 两个方法都无法获取到过滤参数;
为什么点击cloumnMenu的排序过滤,kendo可以自动发请求,带有过滤排序条件,他是怎么获得的参数?

2.相关代码:

//初始化kengoGrid without datasource
$scope.mainGridOptions = {
    toolbar:[
    {
        template: ""
    ],
    sortable: true,
    resizable: true,
    pageable: _kendoConfigure.pageable,
    filterable:_kendoConfigure.filterable,
    noRecords: true,
    columnMenu: true,
    messages: _kendoConfigure.messages,
    columnMenuInit: _kendoConfigure.columnMenuInit,
    columns: columnConfig($rootScope.userData.role)
};
// 获取定制化数据,刷新kendoGrid的数据
function initGrid(begin,end,dateType,inviteCodeType,url){
    var dataSource = dataSourceInit(
        url,
        {
            'start_date':_dateToString(begin),
            'end_date':_dateToString(end),
            'type':dateType,
            'code_type':inviteCodeType,
            'enterprise_status':$scope.enterprise_status,
            'assign_status':$scope.assign_status
        }
    );
 $("#mainGridOptions").data("kendoGrid").setDataSource(dataSource);
 $("#mainGridOptions").data("kendoGrid").refresh();
}
//利用kendo的方法请求后台数据
function dataSourceInit(url,data){
    var dataSource = new kendo.data.DataSource({
        transport: {
            read: {
                url:url,
                type:$rootScope.kendoHttpType,
                dataType: 'json',
                data:data
            }
        },
        schema : {
            model: {
                fields: {
                    channels_num: { type: "number" }
                }
            },
            data : function(d) {
                //逻辑代码
            },
            total : function(d) {
                //逻辑代码
            }
        },
        pageSize: _kendoConfigure.pageSize,
        serverPaging: true,
        serverSorting: true,
        serverFiltering: true
    });
    return dataSource;
}

3.git的提问 和 stackoverflow 的提问地址。

stackoverflow

github

1 个回答
  • 在http://demos.telerik.com/kend...的示例中可以看到详细的请求方法

    点击排序的时候可以看到请求中带有orderby的参数

    而你的setDataSource和refresh的方法应该是jq的方法,angular的数据绑定应该是不会出现这两个操作DOM的方法
    你可以参照示例来写
    而且我觉得你用的并不是kendo的angular组件

    2022-11-12 01:49 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有