Easyui datagrid自定義排序


做項目遇到個關於排序問題,想着在前端排序,正好Easyui有這個功能,所以就拿來用了一下,因為跟官網的Demo不太一樣,所以總結一下;

首先這一列是要排序的列(當然,在生產環境,這一列是隱藏的,在開發階段,我沒有隱藏而已),不用多說可定是CEO排在最上面,Leader排在中間,Employee排后面,默認的順序是這樣的;

然后我在該列加一個配置

就是 sortable:true 的配置,這個配置告訴datagrid表示這類是可以排序的,同時在這列的表頭多了一個排序按鈕,就像這樣

當出現這個箭頭的時候;你可以點擊一下,然后就可以排序了,但這並不是最終的目的,我們的目地是一開始就要排序好,而不是手動再去點點;

於是在datafrid中配置

onSortColumn方法;該方法,就是排序的方法
   onSortColumn: function (sort, order) {

                        alert("sort:"+sort+",order:"+order+"");

                    }
,當你添加過該方法后,你再去點擊,那個排序按鈕,就會出現

 

第一個值是排序的字段,第二個值是排序的順序 倒敘 ,或者降序;
有了這個之后 ,在datafrid中配置
 sortName:'position',
 sortOrder:'desc',
sortName就是你要排序的字段名;
sortOrder就是排序的數序;
好的,上面的都配置好了之后就要開始寫自定義排序函數了,如下
 {
                    title: '員工編號',
                    field: 'id',
                    align: "center",
                    width: '14%'

                },{
                    title:'是否是領導',
                    field:'position',
//                    hidden:true,
                    align: "center",
                    width: '10%',
                    sortable:true,
                    sorter:function (a,b) {
                   return (a.length<b.length?1:-1);

                }

請注意sorter方法,這個方法有兩個參數,接下來就對這個參數就行判斷吧,我這里使用長度來判斷的,短的排在上面,你們可以根據自己實際需求進行排序,再次刷新頁面,直接就是排序好的表格了

最后,需要做的就是將這一列隱藏就好了(當然根據個人需要!)

重點要說一下的就是,建議首先寫sorter方法,這里定義了你排序的條件,有了這個條件之后,再去定義排序的規則(正/逆),就可以了!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM