datagrid的點擊列表頭刷新,分為兩種,一種是頁面刷新,不涉及后台服務器數據,不會從新查詢數據庫,只會刷新當前頁數據;
一種是服務器級刷新,會重新加載全部數據。
如果不需要自定義排序,可以直接使用
remoteSort:false,
sortName:'',
sortOrder:'asc',
一些特殊排序,或者特殊字段可以使用以下的方法
1、將服務器對數據項排序設置為false(必須)
2、設置field的排序屬性為true,sorter的function內容自己寫,如果該字段為數字或者字符串,可以用以下方法:
如果是時間類型,可使用以下方法:
{field:'actual_start_time',title:'實際開始時間',width:100, formatter:function(value,row,index){ if(value != null && '' != value) return new Date(value).format("yyyy/MM/dd"); }, sortable:true, sorter:function(a,b){ a = a.split('/'); b = b.split('/'); if (a[0] == b[0]){ if (a[1] == b[1]){ return (a[2]>b[2]?1:-1); } else { return (a[1]>b[1]?1:-1); } } else { return (a[0]>b[0]?1:-1); } } },
第二種,服務器刷新,只能單列排序
1、將服務器對數據項排序設置為true,對要排序的列增加屬性
2、后台分頁查詢方法,需要接收兩個string類型的參數,sort以及order 參數名是固定的
如果有封裝分頁方法,則自己的查詢sql不需要這兩個參數,如果沒有封裝,則需要根據這兩個參數排序
以下是封裝的底層分頁方法,sqlPage.append(" ORDER BY "+sort+" "+order);
需要在服務器接收兩個參數:
String sort = request.getParameter("sort");
String order = request.getParameter("order");
參考網址:http://blog.csdn.net/changjiadashaoye/article/details/41849497