如何检索表元素的详细信息?

时间:2014-06-30 10:32:15

标签: javascript sapui5

我有一张桌子,我想要检索一个我选择的元素的项目细节:

var tableArtConNom=sap.ui.core.Core().byId("artSnzNomDetail").byId("tableArtConNom");
        tableArtConNom.attachItemPress(this.handleRowPress);

        tableArtConNom.setModel(new sap.ui.model.json.JSONModel(p_oDataModel));

        tableArtConNom.destroyColumns();
        tableArtConNom.removeAllColumns();

        console.log(tableArtConNom.getColumns());
        for(var i=0; i<tableArtConNom.getModel().getProperty("/cols").length; i++){
            tableArtConNom.addColumn(new sap.m.Column("colonna"+i, { header: new sap.m.Label({ text: tableArtConNom.getModel().getProperty("/cols")[i] })}));
        }


        tableArtConNom.destroyItems();
        tableArtConNom.removeAllItems();
        tableArtConNom.bindAggregation("items", "/items", new sap.m.ColumnListItem({
            cells: tableArtConNom.getModel().getProperty("/cols").map(function (colname) {
                return new sap.m.Label({ text: "{" + colname + "}" });
            }),
            type:"Navigation"
        }));


        if(this.byId("idCodNomDog").getProperty("text")!=""){
            var buttonAccept=this.byId("idButtonAccept");
            buttonAccept.setProperty("visible", true);
        }else{
            var buttonAccept=this.byId("idButtonAccept");
            buttonAccept.setProperty("visible", false);
        }

        tableArtConNom.setModel(new sap.ui.model.json.JSONModel(p_oDataModelFull), "fullDataModel");
    },

要做到这一点,我捕捉了新闻事件,但我只找到了一些项目:

//IF CLICK ON ROW
    handleRowPress : function(evt){
        var selectedRowNum = evt.getSource().indexOfItem(evt.getParameter("listItem"));

        console.log(selectedRowNum);


    },

如何打印其他详细信息x(例如列的内容?)

P.S。我无法解析所有行的模型,因为在表格中我过滤了数据,而我点击的索引与总模型中的位置不匹配。

1 个答案:

答案 0 :(得分:2)

在您的事件处理程序中,使用:

var oItem = evt.getParameter("listItem").getBindingContext().getObject();
//NB: if using standard sap.ui.table.Table, use: 
//var oItem = evt.getSource().getBindingContext().getObject(); 
console.log(oItem); //prints the JSON for your selected table row