sap.ui.table.Table排序事件

2020-09-05 17:54发布

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

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


专家,

我需要在每次排序后执行一些逻辑。

我知道表的" sort"事件,但在实际排序之前被称为 。

如何实现?

问候

Omri

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

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


专家,

我需要在每次排序后执行一些逻辑。

我知道表的" sort"事件,但在实际排序之前被称为 。

如何实现?

问候

Omri

付费偷看设置
发送
2条回答
哎,真难
1楼 · 2020-09-05 18:51.采纳回答

通过调用sort事件,手动排序然后在排序后运行我的自定义代码来自行解决。

伪代码(不处理排序方向等)

 onSort:function(oColumn){
     var oTable = oColumn.getSource();
     var oColumn = oColumn.getParameter(" column");

     var oSorter = new sap.ui.model.Sorter(oColumn.getSortProperty(),false);
    
     oTable.getBinding(" rows")。sort(oSorter);

     for(var i = 0; i 

 

Omri

愤怒的猪头君
2楼-- · 2020-09-05 18:31

嗨,Omri,

以其他方式解决了该问题,并在xml视图上保留了sortProperty =" "。
以下说明适用,但是如果您具有更复杂的列选择功能,则需要将状态管理更新为 避免为假true。

技巧是存储选定的列并管理"排序状态"。
当选择列时,我们将其存储并将其更新为true。
选择升序或降序排序将开始,并且在排序之前将状态更新为false以避免无限循环。

已添加到我的控制器中

1-onInit

 this.oTableSortColumn = null;
 this.oTableSortState = false;


 this.oTable.attachSort(this.sortAllColumns);
 this.oTable.attachColumnSelect(this.updateColumnContext); 

2-updateColumnContext

 this.oTableSortColumn = oEvent.getParameters()。column;
 this.oTableSortState = true; 

3-sortAllColumns

 if(vc.oTableSortState){
     this.oTableSortState = false;
   /*在这里进行排序
      * this.oTable.sort(this.oView.byId(" columnID"),library.SortOrder.Ascending,true);
      * 要么
      * this.oTable.sort(this.oTableSortColumn,library.SortOrder.Ascending,true);
      */
 }
 

此致

RémiPallier。

一周热门 更多>