Extjs header column 自定义排序规则
Extjs 的表格自带排序功能,这个功能在大部分情况下能够满足我们的需求,但是在某种情况下,例如IP排序,默认情况下,按照字符串进行排序,
此时我们需要自定义排序规则,这个时候就需要我们重写方法了,
具体代码如下:
var grid = Ext.create('Ext.grid.Panel',{ //... columns: [ { text: 'name', dataIndex: 'name', sortable: true }, { text: 'Custom', sortable : true, dataIndex: 'customsort', //重写此方法 doSort: function(state) { var ds = this.up('grid').getStore(); var field = this.getSortParam(); ds.sort({ property: field, direction: state, //排序规则(重点) sorterFn: function(v1, v2){ v1 = v1.get(field); v2 = v2.get(field); return v1.length > v2.length ? 1 : (v1.length < v2.length ? -1 : 0); } }); } } ] //.... })
解决方案参考:http://stackoverflow.com/questions/17795019/ext-js-sorting-custom-column-by-contents