extjs grid数据排序之array.sort()排序

举个栗子:点击grid1中的某行 例如张三,grid2中相应张三的数据就要排在第一行,游览器f12看了下,grid2中的store数据是array数组形式的,

然准备用array sort方法排序以下,然后grid2刷新一下完事(不走后台,就前段排序一下,然后刷新),

这其中涉及到array.sort()这个方法,

传送门:http://www.w3school.com.cn/js/jsref_sort.asp   入门的文章

代码:

onClick: function () {
        var me = this,
            view = me.getView(),
            vm = me.getViewModel(),
            deptRecord = vm.get('deptyearclickRecord').data;
            deptName = deptRecord.DeptName; //grid1中点击某行的值
        var topview = this.getView().up("yearbudgetquery_budgetquery"),
            wardview = topview.down("yearbudgetquery_budgetward"); //grid2
        var arraySort = function (keyName) {
            return function (objectDept) {
                var value = objectDept.data[keyName];
                if (value === deptName) {
                    return -1;
                } else {
                    return 1;
                }
            };
        };
        wardview.getStore().data.items.sort(arraySort('DeptName'));
        debugger;
        wardview.getView().refresh(); //刷新
    }

 

效果图:

当点击grid1中的

 

grid2中的眼科这个数据就排序grid2列表中的第一行

 

posted @ 2019-04-01 14:29  王先森001  阅读(811)  评论(0编辑  收藏  举报