点击此处---> 群内免费提供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"> <栏> <内容>/workDate", 类型:" sap.ui.model.type.Date", formatOptions:{ 模式:" dd.MM.yyyy", UTC:正确 } }" change =" onDateChange"/> <选项卡:列> tableColumnFullname}" sortProperty ="全名" filterProperty ="全名"> <<标签:列标签=" {i18n> tableColumnAlias}" sortProperty =" alias" filterProperty =" alias" width =" 6em"><输入 value =" {fullname}" showSuggestion =" true" proposalionItems =" {path:'/pernrData',templateShareable:false}" 建议=" onFullNameSuggest" proposalionItemSelected =" onFullnameAliasUpdate" change =" onFullnameUpdate" editable =" {cc1}" valueLiveUpdate =" true" liveChange =" onTimerMove"> <输入 value =" {alias}" maxLength =" 4" showSuggestion =" true" proposalionItems =" {path:'/pernrData',templateShareable:false}" 建议=" onAliasSuggest" proposalionItemSelected =" onFullnameAliasUpdate" change =" onLineUpdate" editable =" {cc1}" valueLiveUpdate =" true" liveChange =" onTimerMove"> tableColumnPernr}" sortProperty =" pernr" filterProperty =" pernr" width =" 9em"> tableColumnDirection}" sortProperty =" direction" width =" 10em"> <项目> tableColumnDate}" sortProperty =" ldate" width =" 10em"> tableColumnTime}" sortProperty =" ltime" width =" 7em">
经过几次调试后,我发现它发生在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,
丹尼斯
将minAutoRowCount设置为10可以解决卡住的问题,但是在任何窗口大小更改之前,它都会精确显示10行。
一周热门 更多>