2014-10-02 96 views
5

我使用sap.m圖書館做了一個組合框:SAPUI5:如何讓選擇字段只讀

var oSelection = new sap.m.ComboBox({ 
    name: <name>, 
    id:  <id>, 
    items: { 
     <items here> 
     }) 
    }, 
}); 

現在,我該如何使這個領域的一種只讀的,所以當我點擊它在移動,它不會提出移動的鍵盤,但它會帶來選擇選項? 我試過使用editable: false,但它禁用了與鍵盤一起的選擇。

謝謝。

+1

您是否考慮過使用sap.m.Select來代替sap.m.ComboBox? – user2808624 2014-10-03 06:53:23

+0

選擇控件將是最後一個選項,因爲我想使用佔位符,而選擇控件沒有(據我所知)。 – keshet 2014-10-03 08:08:01

回答

2

從我能找到的方法,沒有允許這種行爲。

我個人不會建議的一個選擇是訪問HTML DOM並禁用組成sap.m.Combobox組件的輸入字段。

請記住,如果開發SAPUI5更改了Combobox組件的內部工作方式,那麼如果更新SAPUI5庫,代碼可能會被破壞。

這就是說,要使用這個選項,你可以這樣做:

 oSelection.onAfterRendering = function() { 
      if (sap.m.ComboBox.prototype.onAfterRendering) { 
       sap.m.ComboBox.prototype.onAfterRendering.apply(this); 
      } 
      document.getElementById("<id>-inner").disabled=true; 
     } 

通過給你的組件正確的ID替換< ID>σ-內。

這是使用版本1.22.8的SAPUI5開發工具包進行測試的。

+0

看起來loki我將不得不使用Select最終。你的解決方案是可以的,但我真的不想在每次更新SAP庫時都惹惱應用程序。 Thaks無論如何。 – keshet 2014-10-05 05:53:07