我有一个弹出框的SelectDialog。在其中,我正在使用StandardListItem显示数据。
该列表显示了2000多个记录。但是,加载数据需要花费很多时间,因此我将阈值设置为50。当用户打开弹出窗口时,它将向下滚动显示前50条记录,下一组50条记录,依此类推。
现在,问题是当用户搜索记录(例如“ ABC”)时,此ABC可能位于列表中的位置500。他选择ABC,关闭弹出窗口,然后重新打开它,他看不到ABC(因为ABC不在前50个记录中)。他需要向下滚动6次才能查看数据。
我要实现的目标是,一旦用户选择了记录,它就会自动转到最高位置。 UI5 SelectDialog(UI5 Demo Kit)不提供此功能,因为它仅支持单向绑定。有什么帮助吗? 先谢谢了。
我的悲剧。XML代码:
<SelectDialog
id="idSel"
growingThreshold="50"
growing="true"
showClearButton="true"
items="{data>AllItems}"
multiSelect="true"
noDataText="Not Found"
liveChange="handleSearch"
title="Choose"
autoAdjustWidth="true"
growingScrollToLoad="true">
<StandardListItem id="idItem" description="{data>AllDataId})"
title="{data>Title}" type="Active"/>
</SelectDialog>
答案 0 :(得分:1)
您可以尝试设置 rememberSelections = true,以存储当前选择并在再次打开对话框时加载此状态。
<SelectDialog
id="idSel"
rememberSelections="true"
growingThreshold="50"
growing="true"
showClearButton="true"
items="{data>AllItems}"
multiSelect="true"
noDataText="Not Found"
liveChange="handleSearch"
title="Choose"
autoAdjustWidth="true"
growingScrollToLoad="true">
<StandardListItem id="idItem" description="{data>AllDataId})"
title="{data>Title}" type="Active"/>
</SelectDialog>
答案 1 :(得分:1)
rememberSelections
会保留选中/取消选中的选项,但“ ABC”仍将保持在第500位。我认为标准的sap.m.SelectDialog控件无法做到这一点。
不过,我看到了一些选择: