有没有办法保存SAPUI5-Table的列设置? 如果用户注销并再次重新登录,则应保存表属性。 我要做的是保存可以通过用户交互操作的列设置。
财产:showColumnVisibilityMenu:true
我正在使用sap.ui.table.Table
var oTable = new sap.ui.table.Table({
title: "Table Example",
selectionMode: sap.ui.table.SelectionMode.Single,
showColumnVisibilityMenu:true, // those settings should be saved
});
实际上我在这里找到了一个例子来预览列的选择(隐藏或显示):
http://jsbin.com/ceduc/1/edit?html,js,output
因此,当用户决定隐藏列" Key1 Label" (如下图所示)并且想要再次注销和重新登录,列不应该是可见的。应为用户保存表列的配置。怎么做?
答案 0 :(得分:2)
这取决于您希望如何持久保存视图设置以及您拥有的后端。
如果您的ABAP后端具有统一的shell服务(作为Fiori的一部分提供),那么您可以使用标准的Personalization控制器/服务来保留设置。请参阅this demo,UI5 documentation和unified shell service docu。
如果您有任何其他类型的后端或者您不想使用个性化服务,那么您应该保留(专用)模型中列的可见性。然后,您可以在后端保存此模型的内容(只需将其发送到专用的REST服务并将其保存在数据库中)。当用户重新登录时,您可以阅读此模型并简单地将其恢复。
另一种可能性是将其保存在浏览器的local storage中。您仍然需要上面的模型,但不是通过AJAX将数据发送到后端,而是将其保存到本地存储并在需要时从那里加载。
答案 1 :(得分:2)
您可以使用SAP的标准Shell个性化服务。 我就是这样做的。
var oProvider = sap.ushell.Container.getService("Personalization").getPersonalizer(oPersId);
var oTablePersoController = new sap.m.TablePersoController({
table: oTable,
persoService: oProvider }).activate();
这将自动保存并检索变体/个性化。您可以将sap.ui.table.TablePersoController用于sap.ui.table.Table