获取ColumnListItem索引sapui5

时间:2014-11-24 10:07:07

标签: sapui5

如何获取按下ColumnListItem的索引?我想得到并传递给控制器​​方法。

查看代码:

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);   
}

2 个答案:

答案 0 :(得分:1)

您不应该依赖索引,因为表中的索引可能与模型中的索引不同(例如,由于过滤和排序)。

你可以像这样阅读被按下ListItem的bindingContext:

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

bindingContext是一个人工对象,包含相关模型和模型中对象的路径。

然后,您可以像这样读取对象的属性:

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

要获得整个对象,您可以这样做:

var myObject = bindingContext.getObject();

答案 1 :(得分:-2)

获得产品的确切价值

SelectedRowContext.getObject('PRODUCT_ID') 

获取产品名称

SelectedRowContext.getObject('NAME')