表的getItems()方法最多返回20行

时间:2019-01-07 16:10:21

标签: sapui5

我有一个报告表,该表以三种不同的方式填充,具体取决于选择过滤器。在调用报告的末尾,我使用“ updateFinished”事件循环遍历表条目,将它们绘制为斑马风格,并将最后的摘要行绘制为粉红色。

SAPUI5应用程序版本为1.44.12

                        this.oStsTable = this.getView().byId("statusReportTable");

                        this.oStsTable.attachEventOnce("updateFinished", function(oEv) {
                            var aItems = oEv.getSource().getItems();
                            if (aItems && aItems.length > 0) {
                                for (var i = 0; i < aItems.length; i++) {
                                    if (i === aItems.length - 1) {
                                        aItems[i].addStyleClass("pinkBackground");
                                    } else { 
                                        var even = i % 2;
                                        if (even !== 0 && i < aItems.length) {
                                            aItems[i].addStyleClass("cyanBackground");  
                                        }                       
                                    }
                                }
                            }
                        });                         

                        this.byId("statusReportTable").getBinding("items").filter(oTableSearchState);

有了可用的数据,我得到了3个数据集。情况1为7,情况2为7,情况3为23。对于前两种情况,一切正常。问题是案例3(23条记录)。在后端进行调试,我看到23。当出现表时,我再次看到23。但是“ updateFinished”事件中的getItems()方法只能看到20(!)。结果(是的,猜对了),第20行变为粉红色,其余的无颜色的行作为循环退出。

钟声响吗?

Correct Data Incorrect Data

2 个答案:

答案 0 :(得分:1)

如果您只想在最后一行中添加具有不同颜色的斑马样式,则建议仅在您的应用中使用CSS,如下所示。

table tr:nth-child(even) {
    background-color: green;
}

table tr:nth-child(odd) {
    background-color: red;
}

table tr:last-of-type {
    background-color: yellow;
}

答案 1 :(得分:0)

如果您只需要在sap.m.Table上替换行颜色,那么我建议您将属性alternateRowColors设置为 true

<Table id="idProductsTable"
    alternateRowColors="true"
    items="{ path: '/ProductCollection' }">
    <headerToolbar>
        <Toolbar>
            <Title text="Products"/>
        </Toolbar>
    </headerToolbar>
    <columns>
        <Column>
            <Text text="Product" />
        </Column>
        <Column>
            <Text text="Supplier" />
        </Column>
    </columns>
    <items>
        <ColumnListItem>
            <cells>
                <ObjectIdentifier title="{Name}" text="{ProductId}"/>
                <Text text="{SupplierName}" /> 
            </cells>
        </ColumnListItem>
    </items>
</Table>

注意::该属性只能与Belize和Belize Deep主题一起使用。高对比度黑白主题不提供备用行着色。

找到sap.m.Table here的属性。