在我的拆分应用程序的主视图中,我有一个包含采购订单项目的列表。最初,列表按采购订单编号降序排列。我通过声明性地在xml-View中定义一个分类器来实现这个目的:
<List
id="listBestellungen"
noDataText="{i18n>masterListNoDataText}"
growing="true"
growingScrollToLoad="true"
updateFinished="onUpdateFinished"
selectionChange="onSelectionChange"
items="{
path: '/PO_HeadInfoSet',
sorter: {
path: 'POHI_Ebeln',
descending: true
}
}"
mode="SingleSelectMaster"
>
...
然后我在页脚中有一个SortSelect-Button with press-Event&#34; onSorting&#34;。
onSorting函数如下所示:
onSorting: function(oEvent) {
var oView = this.getView();
var oList = oView.byId("listBestellungen");
var oBinding = oList.getBinding("items");
var SORTKEY = "POHI_Ebeln";
var DESCENDING = false;
var GROUP = false;
var aSorter = [];
aSorter.push(new sap.ui.model.Sorter(SORTKEY, DESCENDING, GROUP));
oBinding.sort(aSorter);
}
单击排序按钮时会调用onSorting函数。我也可以看到,在绑定中改变了排序方向。
但是为什么或如何更改UI中列表的排序?
亲切的问候
迈克尔
答案 0 :(得分:0)
尝试刷新模型。由于列表绑定到模型,因此将刷新所有绑定对象(您要更改的UI元素)
var oModel = this.getView().getModel();
oModel.refresh();
答案 1 :(得分:0)
我知道您的问题是按下一个排序按钮,该按钮将按升序对列表进行排序,然后再次按下该列表将按降序排序。
这是怎么做的:
onInit:function(){
this.bDescending = true;
},
onListSort:function(){
var oList=this.byId("listNotesAttachments"),
oBinding = oList.getBinding("items");
var sSortKey = "Time";
this.bDescending= !this.bDescending; //switches the boolean back and forth from ascending to descending
var bGroup = false;
var aSorter = [];
aSorter.push(new sap.ui.model.Sorter(sSortKey, this.bDescending, bGroup));
oBinding.sort(aSorter);
}