同様の要件があり、以下のロジックで動作させました。 1. PanelにheaderToolbarを追加します。 2. headerToolbarでclickイベントをアタッチします。 3. onClickHandler Panelが既に展開されているかどうかを確認します。はいの場合は、パネルを折り畳んだり展開したりしてください。
以下はコードです。このことができます場合、私に教えてください:
XML:
<Panel
expandable='true' expanded='false'>
<headerToolbar>
<Toolbar id='idPanelHeader'>
<content>
<Text text='Click Me!' />
</content>
</Toolbar>
</headerToolbar>
<content>
<Text text = 'Hey' />
</content>
</Panel>
コントローラ(のOnInitでそれをやった):
var oPanelHeader = this.byId('idPanelHeader');
oPanelHeader.attachBrowserEvent("click", function() {
this.getParent().setExpanded(!this.getParent().getExpanded());
// this points to HeaderToolbar and this.getParent will return the Panel.
});
SAPはこれが不可能である自分自身を語りました。とにかく、これは非常に醜い回避策を行うことができます(お勧めしません):パネルの上に重なるコンテナにIDが必要です。これで、あなたはclickPositionを '$ '' 'this.IDI'.getId())で得ることができます。 ; ' あなたが今行う必要があるのは、あなたのPanelを参照するIDを指摘してからclose関数を起動することだけです。 – corax228