SapUI5:在行中继器中过滤值到数据绑定值

时间:2014-08-18 10:49:19

标签: sapui5

我创建了一个行转发器。行转发器模板由一个包含表格的面板组成。

我为行中继器设置了一个模型,表格使用相同的模型,但路径不同。

行中继器行的模型作为属性LEVEL。现在我想在表格中仅显示具有相同级别的值的行。所以我试着像这样过滤掉那个值:

oTemplateTable.bindRows({
        path: "/ROOT_COMPONENT",
        sorter: new sap.ui.model.Sorter("NAME"),
        filters: [new sap.ui.model.Filter(
            "LEVEL",
            sap.ui.model.FilterOperator.EQ, "{LEVEL}")]
});

但是这没用。我需要一些方法来获取表所在行的级别值。有人有想法吗?

1 个答案:

答案 0 :(得分:0)

ROOT_COMPONENT和ROOT_STATISTICS都是对象(即{{data},{data}})包含对象,而不是包含对象的数组(即[{data}, {data}]),所以我怀疑你能否正确呈现RowRepeater

此外,我认为过滤器中的{LEVEL}参数会回退到ROOT_COMPONENT(因为您将表格绑定到的地方),而不是ROOT_STATISTICS。

我认为如果您可以将JSON响应重新编写为更加层次化的响应,那么您可以省去很多麻烦,因此您无论如何都不需要过滤器:

[{
    name      : "ABC",
    tableData : [
    {
        amount : 20
    }]
},
{
    name      : "DEF",
    tableData : [
    {
        amount : 1
    }]
}]

这样您只需将rowrepeater绑定到根节点,将表绑定到相对子tableData