Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
pinakipatra
Contributor

Hi, gone through the post Custom Sorting and Grouping
for sorting an grouping

Similar way i have designed a List sorter using the formatter , but it will sort automatically and also create a header based on the property(of the xsodata) specified.

1.First we create a list.

var oDummyList= new sap.m.List({

            id : "idDummyList",

            mode : sap.m.ListMode.SingleSelectMaster,

          

        });

2.Create a local json model to save the sort property

var sort = new sap.ui.model.json.JSONModel();

        sap.ui.getCore().setModel(sort, "sort");

3.We create a template .In the template we create a formatter function which will add the header for each sorted group
  Note : - the oData should be sorted (in the oData using ?$orderby=sort_propertyor in the db level)

var oListTemplate=new sap.m.StandardListItem({

            id: "idListTemplate",

            title: "{NMAE}",

            description: "{Description}",

            info:{

                path:"CATEGORY",//the property based on which it needs to be sorted

                //List Grouping

                formatter: function(fValue) {

                    if (fValue) {

                        if(sap.ui.getCore().getModel("sort").getData().sortBy !== fValue){

                           

                            sap.ui.getCore().getModel("sort").getData().sortBy = fValue ;

                            this.getParent().insertItem(new sap.m.GroupHeaderListItem({title : fValue}),this.getParent().indexOfItem(this));//Insert a list header

                            this.setType("Inactive")

                        }

                        return null;

                    }

                    return fValue;

                }

           

            }

        });

4.Then Bind the model and set template

               oDummyList.setModel(oModel);

              oDummyList.bindItems("/CONTEXT?$orderby=CATEGORY", oListTemplate, null, null);

Labels in this area