2016-03-29 10 views
-1

Aşağıdaki tabloda xml görünümünde bir seçim var.SAPUI5'te bir seçimin değeri

Tablo:

<Table id="variables" 
        rows="{ 
        path: 'modelname>/ZDATSet' 
       }"> 
... 

seçin:

<m:Select 
      selectedKey="{modelname>Datetype}" 
      items="{ 
       path: 'modelname>/ZTYPESet' 
      }"> 
      <core:Item key="{modelname>Datetype}" text="modelname>Datetypetxt}" /> 
</m:Select> 

Ayrıca masanın bir diğer satırda bir düğme bulunmaktadır. Baskı fonksiyonunda, seçili olan seçili tuşu okumak istiyorum. Ben

var button = oEvent.getSource(); 
var context = button.getBindingContext("modelname"); 
var datetype = context.getProperty("Datetype"); 

ile çalışırsanız

Ben sadece önceden seçilmiş değeri ancak kullanıcı girişinden değişiklik olsun. Düğmeniz aynı satırda ise, böyle bir şey yapabileceğini

enter image description here

+0

İndirgemenin nedeni nedir? –

+0

Kodunuz iyi görünüyor ... tek yönlü bağlama ile bir ODataModel kullanarak herhangi bir şans var mı? Ya da iki yönlü bağlama ile bir JSONModel? Eski sorunları verebilir, ikincisi sadece iyi çalışır – Qualiture

cevap

1

Şimdi çözüm bulundu.

Varsayılan iki yönlü ciltleme için <script src="https://sapui5.hana.ondemand.com/resources/sap-ui-core.js" data-sap-ui-xx-bindingSyntax="complex" ...'un yeterli olacağını düşünmüştüm.

Şimdi modele oModel.setDefaultBindingMode(sap.ui.model.BindingMode.TwoWay); ekledim ve iyi çalışıyor.

0

(satırdaki bir metin girişi ile aynı sorun)

Zaten index.html içinde data-sap-ui-xx-bindingSyntax="complex" koymak onun basın olayı:

onPress:function(oEvent){ 
    var button = oEvent.getSource(); 
    var context = button.getBindingContext("modelname"); //Points to the current row 
    var datetype = context.getProperty("DateType");  
    ... 
} 

düğmesi bize daha ayrıntılı vermek zorunda tablonun dışındaysa:, kullandığınız ve nasıl yapılandırıldığı Tablo Eğer selectbox değerini okumak istiyorsun seçili satırda? Daha fazla kod ekle!

+0

Düğme masanın içinde. Ben zaten senin yolun gibi denedim, ama bu kodla, sadece önceden doldurulmuş değeri aldım. Kullanıcı seçilen değeri değiştirirse, güncellenmez. –

0

Kod snippet'inize dayanarak, öğelerinizi ve Seçinizin seçilen anahtarını ayarlamak için model ciltleme kullanıyorsunuz. Eğer bağlayıcı bağlamdan akım değeri elde edebilirsiniz Düğme basın işleyicisi

:

onPress: function (oEvent) { 
    oEvent.getSource().getBindingContext("modelname").getProperty("Datetype"); 
} 
+0

Lütfen sorudaki değişikliklere bakın. İlk versiyonda yeterince spesifik değildi. Sry. –