0

我有一个使用 RPC 代理从服务器加载数据的异步 TreePanel。我想使用以下方法重新加载节点:

this.treeLoader.loadChildren(nodeModel);

然后,我希望加载的树节点展开。我尝试过了:

treePanel.setExpanded(nodeModel, true, false);

但第一次调用是异步的,因此“setExpanded”发生在节点加载之前。

一种解决方案是在 treeLoader 上使用 LoadListener 并在加载它的子节点后展开节点,但侦听器的 loaderLoad(..) 方法无法直接知道重新加载的原因:也许用户展开了一个节点,这触发了重新加载,或者用户单击菜单选项以重新加载节点。

有什么办法可以改善这一点,以便在用户想要重新加载节点后更容易触发节点扩展?

谢谢。

4

2 回答 2

1

尝试在 loaderLoad 方法以及 loaderLoadException 中删除监听器以避免泄漏

于 2011-10-10T11:53:41.160 回答
0

我建议存储选择要重新加载的节点(向你添加一个 onClick 侦听器)。比在 loaderLoad 检查存储的对象是否等于加载节点的父节点:

loader.addLoadListener(new LoadListener() {
    @Override
    public void loaderLoad(LoadEvent loadEvent) {
        ModelData parent = loadEvent.getConfig();
        if(parent.equals(storedObject) {
            // your code here
于 2015-01-27T14:49:11.113 回答