0

我想创建一个事件侦听器来检测我的嵌套列表何时处于顶层,然后在页面上隐藏一个组件。例如:

onNestedlistActiveItemChange: function(container, value, oldValue, options) {
     if (this.getMyNestedList().atLevel(0)) <-- seudo code, does not work
           {
           Ext.getCmp('myButton').hide();
           }
    }

在此先感谢您的帮助

4

2 回答 2

2

嵌套列表的_backButton._hidden属性将true在默认返回按钮隐藏和false按钮显示时返回。仅当嵌套列表位于顶层时,该按钮才会隐藏。

诀窍是使用嵌套列表的“后退”事件,它在后退事件发生后返回工具栏的状态:

onMynestedlistBack: function(nestedlist, node, lastActiveList, detailCardActive, options){
    if(nestedlist._backButton._hidden) {
        Ext.ComponentQuery.query('#myButton')[0].hide();
    }
}

也就是说,如果嵌套列表的后退按钮是隐藏的,那么列表就在顶层,所以 hide myButton

当然有更严格的方法可以做到这一点,但其中大多数会涉及覆盖工具栏的默认按钮处理。

于 2012-09-11T16:04:56.967 回答
0

您可以通过检查列表的索引来获取列表级别

var idx = nestedlist.getInnerItems().indexOf(list);
if (idx === 0) { 
    // top level...
}

[更新]

您还可以检查记录的深度级别

var depth = record.getData().depth;
if (depth === 1) { 
    // top level...
}
于 2013-05-08T10:47:49.577 回答