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なっているときとボタンが表示されているときに返されます。ボタンは、ネストされたリストが最上位にある場合にのみ非表示になります。

秘訣は、ネストされたリストの「back」イベントを使用することです。これは、backイベントが発生した後のツールバーの状態を返します。

onMynestedlistBack: function(nestedlist, node, lastActiveList, detailCardActive, options){
    if(nestedlist._backButton._hidden) {
        Ext.ComponentQuery.query('#myButton')[0].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 に答える