sap.ui.table与自动行计数模式卡住

2020-09-20 22:02发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我在sap.ui.tab...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好

我在sap.ui.table.Table的行为非常奇怪,其中visibleRowCountMode = Auto。 如果模式不是自动,则没有错误。 它陷入无休止的循环,只有在从SAP WebIDE部署到ABAP存储库后才发生。 即使使用相同版本的SAPUI5(1.44.19),我也无法在WebIDE测试中完全复制它。 "卡住"发生了一分钟(由于表中有处理程序),并在控制台中完成了以下记录:

未捕获的RangeError:超出最大调用堆栈大小
     在f.a._setupMaskVariables(MaskInput-dbg.js:645)
     在f.a.setMask(MaskInput-dbg.js:335)
     在新g处(TimePicker-dbg.js:1307)
     在f.d._initMask(TimePicker-dbg.js:1178)
     在f.d.setValue(TimePicker-dbg.js:548)
     在f.h.updateProperty(ManagedObject-dbg.js:2855)
     在Constructor.w(ManagedObject-dbg.js:2703)
     在builder.a.fireEvent(EventProvider-dbg.js:229)处
     在构造函数中B._fireChange(Binding-dbg.js:247)
     在builder.O.checkUpdate(ODataPropertyBinding-dbg.js:129)处
 

XML视图的代码:

 
 <页面标题=" {i18n> worklistViewTitle}" showHeader =" false" enableScrolling =" false">
 
 <栏>
 
 

经过几次调试后,我发现它发生在Table.js的_updateTableSizes函数中:

 var y = 0;
         如果(!a && this.getVisibleRowCountMode()== V.Auto){
             y = this._determineAvailableSpace();
             如果(this._handleRowCountModeAuto(y)&&!b){
                 返回;
             }
         }
 

这会在发生这种情况时导致这样的调用堆栈:

 ...
 v._insertTableRows(Table.js?eval:formatted:2246)
 v._adjustRows(Table.js?eval:formatted:2221)
 v._executeAdjustRows(Table.js?eval:formatted:1713)
 v._handleRowCountModeAuto(Table.js?eval:formatted:1678)
 v._updateTableSizes(Table.js?eval:formatted:751)
 v.onAfterRendering(Table.js?eval:formatted:704)
 a._handleEvent(Element-dbg.js:301)
 v._insertTableRows(Table.js?eval:formatted:2251)
 v._adjustRows(Table.js?eval:formatted:2221)
 v._executeAdjustRows(Table.js?eval:formatted:1713)
 v._handleRowCountModeAuto(Table.js?eval:formatted:1678)
 v._updateTableSizes(Table.js?eval:formatted:751)
 v.onAfterRendering(Table.js?eval:formatted:704)
 a._handleEvent(Element-dbg.js:301)
 v._insertTableRows(Table.js?eval:formatted:2251)
 ....
 

看起来它决定绘制5条线,更新大小,然后决定绘制10条线,更新大小,然后再绘制5条线。。我试图用相同的1.44。*版本启动应用程序 结果。 有什么建议吗?

BR,

丹尼斯

1条回答
半个程序猿
2020-09-20 22:26

将minAutoRowCount设置为10可以解决卡住的问题,但是在任何窗口大小更改之前,它都会精确显示10行。

一周热门 更多>