【问题标题】:ExtJS Tree multiple Models (nested)ExtJS 树多个模型(嵌套)
【发布时间】:2013-02-12 06:17:13
【问题描述】:

我有一棵异步加载的树。我有两个模型,Manager 和 User。

Managers 可以是父节点或叶子节点,但用户只能是叶子节点。因此,经理可以在其之上或之下拥有任意数量的经理,但 I User 只能是经理的子级。

我已经为 User 和 Manager 模型设置了代理,并将 Manager 设置为 TreeStore 的 Model 参数。我尝试使用hasMany 和belongsTo 来描述关系,希望每次我展开一个节点时,都会为Users 和Managers 发送一个get。它不工作。我只得到经理,而不是用户。

有人对处理这类关系有什么建议吗?

【问题讨论】:

  • Afaik 您需要将一些参数发送到您的服务器,以便它可以确定哪个节点正在打开。而 afaik 处理树是 *** 的痛苦。也许您可以分享您的代码,以便我们为您提供帮助。
  • 几天前我遇到了同样的问题。经过搜索,我发现 ExtJS 4 TreePanel 根据 sencha 论坛上的这个答案只支持一个模型,看看答案 #8,它来自一个 sencha 开发人员:sencha.com/forum/…
  • 只是对此的更新,因为它正在获得一些观点。我最终使用了一个单独的调用来填充树,并为每个节点传递了一个参数,将其标识为管理器、用户等。然后,每当在树上进行 CRUD 操作时,相应的存储也会更新。

标签: extjs tree extjs4


【解决方案1】:

创建具有属性 (IsUser) 的新模型 'Employee' 并加载到经理和用户 IE 列表中:

   Ext.regModel('Employee', {
        fields: [
            { name: 'ID', type: 'int' },
            { name: 'Name', type: 'string' },
            { name: 'LastName', type: 'string' },
            //....
            { name: 'IsUser', type: 'int' }
        ]
    });

用于填充的 SQL 查询应如下所示:

SELECT id, name, lastname, 0 as IsUser

FROM managers ...

UNION

SELECT id, name, lastname, 1 as IsUser

FROM users ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多