2014-11-24 23 views
1

如何獲取按壓ColumnListItem的索引?我想獲得並傳遞給控制器​​方法。獲取ColumnListItem索引sapui5

查看代碼:

var oTable = new sap.m.Table({ 
     id: "Countries", 
     mode: sap.m.ListMode.None, 
     columns: [ new sap.m.Column({ 
      width: "1em", 
      header: new sap.m.Label({ 
      text: "Name" 
      }) 
     }) 
     ] 
    }); 
var template = new sap.m.ColumnListItem({ 
      id: "first_template", 
      type: "Navigation", 
      visible: true, 
      selected: true, 
      cells: [ new sap.m.Label({ 
        text: "{name}" 
        }) 
      ], 
      press: [oController.pressListMethod] 
    }); 
    oTable.bindItems("/eventos", template, null, null); 
    oPage.addContent(oTable); 

控制器代碼:

pressListMethod: function(index){ 
    var oData = sap.ui.getCore().getModel().getProperty("/eventos/"+index+"/name"); 
    alert(oData); 
} 

回答

1

您shouldn't依靠索引,因爲在表中的索引,可以從標準模型中的不同(例如,由於過濾和分類)。

您可以閱讀按下ListItem像這樣的BindingContext:

pressListMethod: function(event){ 
    var bindingContext = event.getSource().getBindingContext(); 
} 

的BindingContext是包含有關模型和模型中的對象的路徑中的人造物體。

然後,您可以讀取你的對象的屬性是這樣的:

var name = bindingContext.getProperty("name"); 

要得到整個對象,你可以做這樣的:

var myObject = bindingContext.getObject(); 
-2

爲了獲得產品的精確值

SelectedRowContext.getObject('PRODUCT_ID') 

獲取產品名稱

SelectedRowContext.getObject('NAME')