2014-10-02 8 views
5

Ho fatto una casella combinata con biblioteca sap.m:SAPUI5: come fare di selezione campo di sola lettura

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

Ora, come faccio a fare questo tipo di campo di sola lettura, in modo che quando io batto sul cellulare , non mostrerebbe la tastiera del cellulare, ma mostrerebbe le opzioni di selezione? Ho provato a usare editable: false, ma disabilita la selezione insieme alla tastiera.

Grazie.

+1

Hai pensato di utilizzare sap.m.Select invece di sap.m.ComboBox? – user2808624

+0

Seleziona controllo sarà l'ultima opzione, perché mi piacerebbe usare segnaposti, che il controllo Seleziona non ha (per quanto ne so). – keshet

risposta

2

Da quello che ho potuto scoprire non esiste un metodo che consenta tale comportamento.

Un'opzione, che personalmente non consiglierei, è accedere al DOM HTML e disabilitare il campo di input che compone il componente sap.m.Combobox.

Tenere presente che se lo sviluppo SAPUI5 modifica il funzionamento interno del componente Combobox, il codice potrebbe essere danneggiato se si aggiornano le librerie SAPUI5.

Detto questo, per usare questa opzione si potrebbe fare qualcosa di simile:

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

sostituire il < id> -inner dalla corretta identificazione dato al vostro componente.

Questo è stato testato utilizzando la versione 1.22.8 del toolkit di sviluppo SAPUI5.

+0

Sembra loki Dovrò usare Seleziona alla fine. La tua soluzione è OK, ma non voglio davvero scherzare con l'applicazione ogni volta che vengono aggiornate le librerie SAP. Comunque lo è. – keshet

Problemi correlati