2017-01-04 104 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上)。 我只發現一個錯誤:你應該使用ToggleButton來保持Button的狀態。說按下按鈕即可刪除圖像,或按下時將圖像放回(即未按下)。

代碼在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很高興能幫到你。標記問題爲答案:) –

0

當你使用:

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

您的VAR myBtn是不確定的,因爲使用sap.ui.getCore()按鈕的ID期待這樣的:

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

其中__xmlview1--是由框架自動生成。所以,請使用此代碼來代替:

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

當您使用XML視圖或控制器的createId方法時,使用this.byId。請檢查我的答覆在這下面的鏈接:http://stackoverflow.com/questions/41437236/sapui5-js-in-controller-table-is-not-binding –

+0

謝謝Jaro,這不是這裏的情況。我嘗試在控制檯中打印myBtn&得到了上面的輸出,所以myBtn得到了它應該輸入的內容要得到。我認爲myBtn.setIcon('')工作不正常。 –

+0

@ArmoghanAbbas:你的意思是它不會在點擊時切換圖片,或者你的意思是它在首次點擊之後不會刪除圖片? –