2017-01-04 11 views
0
new sap.m.Button("manualimage",{ 
       icon : 'resources/Green.JPG', 
       width : "40px", 
       height : "40px", 
       press :function(e) { 
        var myBtn = sap.ui.getCore().byId("manualimage"); 
        console.log(document.getElementById("manualimage").icon); 
        myBtn.setIcon(''); 
       } 
      }) 

ボタンをクリックするとアイコンが変更されません。ここで間違っていると思われることはありますか?ui5ボタンを切り替えることができません

答えて

0

以下は私のコードです(UI5バージョン1.42)。 私は間違いが1つしかありません:ToggleButtonを使用してボタンの状態を保持する必要があります。押された場合は画像を削除する、または押された場合(つまり押されていない場合)に画像を戻すと言う。 XMLで

コード:コントローラで

<ToggleButton icon='./images/ICICI.png' text ='hey' pressed='false' press='handlePress' /> 

コード:

handlePress: function(evt) { 
     var oSource = evt.getSource() 
     var bPressed = oSource.getPressed(); 
     if(bPressed) { 
      oSource.setIcon(''); 
     } else { 
      oSource.setIcon('./images/ICICI.png'); 
     } 
    } 

これはあなたのために働くなら、私に教えてください。

+0

これは完全に動作します ありがとうございました –

+0

@ArmoghanAbbas嬉しいです。回答したplsとしてマークの質問:) –

0

使用:

var myBtn = sap.ui.getCore().byId("manualimage"); 

ボタンの使用sap.ui.getCore()IDのようなものを期待しているので、あなたのvar myBtnですが、未定義である:__xmlview1--がどこにある

sap.ui.getCore().byId("__xmlview1--manualimage"); 

をフレームワークによって自動生成されます。ですので、このコードを代わりに使用してください:

var myBtn = this.byId("manualimage"); 
+0

this.byIdは、XMLビューまたはコントローラのcreateIdメソッドを使用した場合に使用されます。私の返信を以下のリンクで確認してください。http://stackoverflow.com/questions/41437236/sapui5-js-in-controller-table-is-not-binding –

+0

ありがとうございました。ここにはありません。 F {bAllowTextSelection:真、mEventRegistry:オブジェクト、SID: "manualimage"、mProperties:D、mAggregations:オブジェクト...} 私はmyBtnですが入力を取得しているので、それが想定され、コンソールにmyBtnですが、印刷&上記の出力を持ってみました取得するため。私はmyBtn.setIcon( '')が正しく動作していないと思います。 –

+0

@ArmoghanAbbas:クリックで画像を切り替えるのではなく、最初にクリックした後に画像を削除しないという意味ですか? –

関連する問題