SAPUI5中的刷新列表

时间:2016-06-30 12:34:10

标签: javascript refresh sapui5

我想每60秒刷新一次列表

我的代码:

window.refreshProductsTimer = window.setInterval(function(){ 
                    var oModel = that.getView().getModel("Products");
                    oModel.refresh(true);               

                    var oView = that.getView();
                    oView.byId("productsList").setBindingContext("Products");
                }, 30000);

Interval有效但我的列表项不会刷新。任何想法如何刷新我的观点?

我的列表中有一个计时器,如:

  

2day 15h 13m

它由格式化程序函数计算:

<List id="productsList"
        items="{ path: 'Products>/ProductDocumentSet' }">
        <items>
            <ObjectListItem title="{Products>Dono}" type="Active" press="onListItemPressed"
                icon="sap-icon://{path:'Products>AAucform',formatter: '.formatter.getIcon'}"
                >
                <firstStatus>
                    <ObjectStatus
                        text="{parts: [{path: 'Products>AAucendDate' },{path: 'Products>AAucendTime' }],
                        formatter: '.formatter.getCountdown'}"
                        state="{parts: [{path: 'Products>AAucendDate' },{path: 'Products>AAucendTime' }],
                        formatter: '.formatter.getCountdownStatus'}" />
                </firstStatus>
                <attributes>
                    <ObjectAttribute text="{parts: [{path: 'Products>ADldatesDate' },{path: 'Products>ADldatesTime' }],
                        formatter: '.formatter.getDateTimeShort'}" />
                    <ObjectAttribute text="{i18n>GlobalType}: {Products>AAucformDesc}" />

                </attributes>
            </ObjectListItem>
            </items>
    </List>

但计时器不会改变。

1 个答案:

答案 0 :(得分:0)

获取列表的ListBinding,然后调用refresh:

var oList = oView.byId("productsList");
oList.getBinding("items").refresh(true);

以下是一个使用sap.m.Table并每5秒加载一次数据的工作示例:https://jsbin.com/wujovujegi/edit?html,output

这是一个列表:https://jsbin.com/vadahiyufo/edit?html,output

时间戳永远不会改变。这是你的问题吗?请注意,代理会在短时间后阻止请求,因为&#34;请求太多&#34; (你可以在网络流量中看到这一点。)