这基本上是针对这个问题的变通方法试验:" 如何在XML视图中使用自定义排序器 "
由于目前无法在XML视图中使用自定义排序器,我想也许可以在控制器中设置排序器.
你如何用JS视图做到这一点是这样的:
var oTemplate = ... // irrelevant
var oList = new sap.m.List({
    id: this.createId("someList"),
    items: {
        path: "/list",
        template: oTemplate,
        sorter: foo.bar.CustomSorter
    }
});
Run Code Online (Sandbox Code Playgroud)
当我想将其转换为XML视图时,我有以下内容:
<m:List id="someList"
        items="{path: '/list'}">
    <!-- hid ListItem implementation -->
</m:List>
Run Code Online (Sandbox Code Playgroud)
那么,如何在控制器中将分拣机设置到此列表中?还有,在哪里挂钩呢?选项:
onInitonBeforeRenderingonAfterRendering所以,我的期望是这样的:
sap.ui.controller("foo.bar.controller.SomeController", {
   onInit : function(){
      var oList = this.getView().byId("someList");
      oList.get___Something___().setSorter(foo.bar.CustomSorter);
   };
};
Run Code Online (Sandbox Code Playgroud)
但似乎不可能.