EasyUI扩展之Tree的simpleData加载

这是基于EasyUI 1.2.6的tree新增的loadFilter功能的一个扩展。大家都喜欢ztree的简单数据结构(扁平pid结构数据集,也就是id,pid形式),于是1.2.6有了loadFilter之后,我们可以很简单的就实现了。(这里要赞一下EasyUI的作者,对于架构的开闭原则做的很到位。)

tree-loadFilter.js:

 $.fn.tree.defaults.loadFilter = function (data, parent) {
    var opt = $(this).data().tree.options;
    var idFiled, textFiled, stateFiled, parentFiled;
    if (opt.parentFiled) {
        idFiled = opt.idFiled || 'id';
        textFiled = opt.textFiled || 'text';
        stateFiled = opt.stateFiled || 'state';
        parentFiled = opt.parentFiled;
        var i, l, treeData = [], tmpMap = [];
        for (i = 0, l = data.length; i < l; i++) {
            tmpMap[data[i][idFiled]] = data[i];
        }
        for (i = 0, l = data.length; i < l; i++) {
            if (tmpMap[data[i][parentFiled]] && data[i][idFiled] != data[i][parentFiled]) {
                if (!tmpMap[data[i][parentFiled]]['children'])
                    tmpMap[data[i][parentFiled]]['children'] = [];
                data[i]['text'] = data[i][textFiled];
                data[i]['state'] = data[i][stateFiled];
                tmpMap[data[i][parentFiled]]['children'].push(data[i]);
            } else {
                data[i]['text'] = data[i][textFiled];
                data[i]['state'] = data[i][stateFiled];
                treeData.push(data[i]);
            }
        }
        return treeData;
    }
    return data;
};

前台调用:

$('#tree').tree({
  animate: true,
  dnd: true,
  url: '../Home/GetTreeViewSimpleData',
  idFiled: "ID",
  textFiled:"Text",
  parentFiled:"ParentID",
  stateFiled:"State",
  line:true
});

后台数据:

public JsonResult GetTreeViewSimpleData()
{
    return Json(db.TreeView);
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CSICSICSICSI

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值