2014-10-02 63 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