动态更改sap.ui.table行绑定行为



需要更改sap.ui.table的行为视情况而定。将后端中存在的行绑定到表,并设置阈值。如果没有。operationMode加载所有行数据并在浏览器中进行排序/过滤

但如果较大则没有。$top/$skip排序/过滤应该触发后端调用,即operationMode服务器.

根据文档operationModeAuto应该已经工作了,但它保持排序/过滤始终在服务器端,无论存在的几行小于阈值,因此不能纯粹作为ClientoperationMode工作。.

在XML视图绑定中是否有直接的方法来改变operationMode到客户端/服务器取决于计数条件或operationMode

中有条件注入
<Table id="myTable"  threshold="200" visibleRowCount="10"  minAutoRowCount="10" 
rowHeight="40" 
visibleRowCountMode="Interactive"
rowSelectionChange="onTableChange" 
rows="{path: 'SampleEntitySet', parameters: {expand: 'Test123', operationMode : 'Server'}, events: {change: '.onTableChange'}}">


请帮忙提出解决建议。由于

问题指向OperationMode.Auto(https://ui5.sap.com/1.102.1/#/api/sap.ui.model.odata.OperationMode),这已经在评论中指出了。但是,OperationMode功能不全(可能已经很长时间了),并且在SAPUI5 1.102中已弃用。

理解为什么你想在行为上有这样的区别是有意义的。在数据量较小的情况下,可以使用OperationMode.Client进行优化。这将主要优化后端造成的负载。用户可能不会意识到这种差异,除非到后端的网络很差。如果数据量很小,甚至服务器上排序或过滤的负载也不是真正的问题。所以问题是,在这个问题背后是否真的隐藏着另一个问题,并且研究这个问题是有意义的。

应该定义为绑定参数,而不是表的属性。例如

oTable.bindRows({
path : "/Categories",
parameters: {
operationMode : "Auto",
countMode : "Inline",
threshold: 9
}
})

请参阅下面的jsbin,并将阈值属性设置为小于8以查看对CategoryName列(服务器模式)排序的批处理请求,或将其设置为大于8以查看客户机模式中的操作。https://jsbin.com/wutiyudoru/1/edit?html,输出

最新更新