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

Sapui5 表的getItems()方法最多返回20行,sapui5,Sapui5,我有一个报告表,它根据选择过滤器以三种不同的方式填充。在调用的报告的末尾,我使用“updateFinished”事件循环遍历表条目,将它们绘制为斑马线样式,并将最后一条摘要行绘制为粉红色 SAPUI5应用程序版本为1.44.12 this.oStsTable = this.getView().byId("statusReportTable"); this.oStsTable.attachEventO

我有一个报告表,它根据选择过滤器以三种不同的方式填充。在调用的报告的末尾,我使用“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);
this.oStsTable=this.getView().byId(“statusReportTable”);
this.oStsTable.attachEventance(“updateFinished”,函数(oEv){
var aItems=oEv.getSource().getItems();
如果(aItems&&aItems.length>0){
对于(变量i=0;i
有了可用的数据,我得到了3个数据集。案例1为7,案例2为7,案例3为23。对于前两种情况,一切正常。问题在于案例3(23条记录)。在后端调试,我看到23。当table出现时,我再次看到23。但是“updateFinished”事件中的getItems()方法只能看到20(!)。结果是(是的,猜对了),第20行变成粉红色,其余的没有颜色的行作为循环退出

有什么动静吗


如果你只是想在最后一行添加一个不同颜色的斑马风格,我建议你只在应用程序中使用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;
}

如果您只需要在屏幕上交替行颜色,那么我建议您将属性
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>

注意:此属性只能用于伯利兹和伯利兹深度主题。高对比度黑白主题不提供替代行颜色


查找sap.m.Table的属性。

不幸的是,我无法做到这一点,我有一个使用4个不同主题的主题选择器,很高兴知道,不过,谢谢你,没关系。与使用
AttachEventance
方法获取项目不同,您是否尝试过在渲染后使用
onAfterRendering
方法?找到了一种更快速的方法(设置增长阈值(iGrowingThreshold)),但肯定值得一看并去掉代码,谢谢