zoukankan      html  css  js  c++  java
  • dojo tree edit的使用[前端]

    var store = new mydata.JsonRestStore({ target: "<%=ResolveUrl("~/uieditserver.ashx")%>" });

    typestore = new mydata.JsonRestStore({
    target: "<%=ResolveUrl("~/uieditserver.ashx") %>",
    labelAttribute: "pagename"
    });

    treeModel = new dijit.tree.ForestStoreModel({
    store: typestore,
    deferItemLoadingUntilExpand: true,
    rootLabel: "系统功能树",
    query: { operation: 'pageList.FindTree' },
    childrenAttrs: ["Details"]
    });

    var treeControl = new dijit.Tree({
    id: "atreepowers",
    model: treeModel,
    autoExpand: true,
    showRoot: true,
    _createTreeNode: function (args) {

    var tnode = new dijit.Tree._TreeNode(args);
    tnode.labelNode.innerHTML = args.label;
    if (args.item.root) {//如果是根
    return tnode;
    }

    var cb = new dijit.form.CheckBox();
    cb.placeAt(tnode.labelNode, "first");

    dojo.connect(cb, "onChange", function () {
    var treeNode = dijit.getEnclosingWidget(this.domNode.parentNode);
    dojo.publish("/checkbox/clicked", [{
    "checkbox": this,
    "item": treeNode.item
    }]);
    });

    return tnode;
    }
    });

    dojo.subscribe("/checkbox/clicked", function (message) {
    message.item.ischecked = message.checkbox.checked;
    setpersiblings(message.checkbox.getParent());
    });

    function setpersiblings(selectNode) {
    if (!selectNode) return;
    //先子级,孙级
    var checked = selectNode.item.ischecked;
    var childrens = selectNode.getChildren();
    for (var i = 0; i < childrens.length; i++) {
    childrens[i].item.ischecked = checked;
    dijit.getEnclosingWidget(childrens[i].labelNode.firstElementChild)
    .set('checked', checked);
    }

    var iparentknow = 0;
    //位置,往前获取数据,往后获取数据,同级
    var getparentchildrens = selectNode.getParent();//.getChildren();
    while (getparentchildrens && getparentchildrens.isTreeNode && !getparentchildrens.item.root) {
    var getchildrens = getparentchildrens.getChildren();
    for (var i = 0; i < getchildrens.length; i++) {
    if (getchildrens[i].item.ischecked) {
    iparentknow += 1;
    }
    }
    if (iparentknow === getchildrens.length) {
    getparentchildrens.item.ischecked = true;
    dijit.getEnclosingWidget(getparentchildrens.labelNode.firstElementChild)
    .set('checked', true);
    }
    else {
    getparentchildrens.item.ischecked = false;
    dijit.getEnclosingWidget(getparentchildrens.labelNode.firstElementChild)
    .set('checked', false);
    }
    getparentchildrens = getparentchildrens.getParent();//.getChildren();
    }
    }

  • 相关阅读:
    [链接]实现GEF程序中的剪切/复制/粘贴功能
    管理Oracle数据库要注意的一些问题
    [Eclipse]GEF入门系列(五、浅谈布局)
    由于Eclipse版本不符造成的异常
    [Eclipse]处理颜色类型的偏好项
    [Eclipse]关于EMF
    [Eclipse]GEF入门系列(六、添加菜单和工具条)
    《敏捷个人认识自我,管理自我》前言
    【敏捷个人俱乐部】QQ群第二次公开接受加入 及 12月4日晚上聊天记录
    101与金根回顾敏捷个人:(97)通过实践TOGAF来思考如何学习并应用新的方法?
  • 原文地址:https://www.cnblogs.com/forhell/p/4718122.html
Copyright © 2011-2022 走看看