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
在http://demos.telerik.com/kend...的示例中可以看到详细的请求方法
点击排序的时候可以看到请求中带有orderby的参数
而你的setDataSource和refresh的方法应该是jq的方法,angular的数据绑定应该是不会出现这两个操作DOM的方法
你可以参照示例来写
而且我觉得你用的并不是kendo的angular组件