2017-05-23 8 views
0

私はsap.m.panelを持っており、ユーザーがクリックした場所を展開/折りたたみたい。しかし、このイベントは、ユーザーが矢印をクリックしたときにのみ発生します。Sapui5パネルクリック可能エリア

¿どのように解決するのか?

これは私のコードです:

var panel = new sap.m.Panel(); 
panel.setExpandable(true); 
panel.addStyleClass("someClass"); 
panel.setHeaderText("someText"); 
return panel; 

ありがとう!

+0

SAPはこれが不可能である自分自身を語りました。とにかく、これは非常に醜い回避策を行うことができます(お勧めしません):パネルの上に重なるコンテナにIDが必要です。これで、あなたはclickPositionを '$ '' 'this.IDI'.getId())で得ることができます。 ; ' あなたが今行う必要があるのは、あなたのPanelを参照するIDを指摘してからclose関数を起動することだけです。 – corax228

答えて

1

同様の要件があり、以下のロジックで動作させました。 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. 
     });