easyui的treegrid实现树型向上汇总功能

记录下如何在使用EasyUI的treegrid的情况下实现树型向上汇总功能。

首先是取出treegrid中的所有顶级节点。

var treeList = jQuery('#treegrid').treegrid('getChildren');
var treeListOnlyTopNodes = [];
for (var i = 0; i < treeList.length; i++) {
    if (!treeList[i].pid) {
    treeListOnlyTopNodes.push(treeList[i]); } } treeSum(treeListOnlyTopNodes);

然后是定义并实现treeSum函数。

function treeSum(treeList) {
    // console.log(treeList);
    for (var i = 0; i < treeList.length; i++) {
        sumMoneyToItsParent(treeList[i]);
    }
}

最后是定义并实现sumMoneyToItsParent函数。

function sumMoneyToItsParent(item) {
    let sumMoney = 0;
    if (item.children && item.children.length) {
        for (let childItem of item.children) {
            sumMoneyToItsParent(childItem);
            sumMoney = (Number(sumMoney) + Number(childItem.comeMoney || 0)).toFixed(2);
        }
        item.comeMoney = sumMoney;
        jQuery('#treegrid').treegrid('refresh', item.id);
    }
}

特别说明的是,因为EasyUI并没有实现数据驱动模型,因此需要使用treegrid提供的刷新行方法将汇总的数据更新到树表中。

"敏感的人特别懂事,只需要稍稍给点暗示,就能读懂背后的意思,所以从不让与人为难,只会为难自己。"

猜你喜欢

转载自www.cnblogs.com/yanggb/p/12462075.html