对一个数据表进行三字段排序过程中遇到的问题:
元数据配置如下:后台log如下:
我的分析过程如下:
没人回答,我自己答吧 《1》gridController里面query(): // 获取排序 String sort = WidgetManager.getSort(this,object.getStr("default_order")); 将默认排序作为参数传递 然后调用getSort(Controller c,String order);源代码调用getSort(Controller c)没有对默认的排序进行判断总是为null 而且在grid.tag 内处理有问题 // 默认排序 var sortName = null,sortOrder = 'asc'; if(object.default_order){ var defaultOrder = object.default_order.split(' '); sortName = defaultOrder[0]; if(defaultOrder.length > 1){ sortOrder = defaultOrder[1]; } } sortName 不得赋值,否则第一次默认排序时就会冲突即: // 指定默认排序方式 if (!xx.isEmpty(order)) { sql = " order by " + order; } // 当前Request的排序方式 String orderField = c.getPara(PageConst.SORT, "");// 获取排序字段 String orderType = c.getPara(PageConst.ORDER, "");// 获取排序方式 if (!xx.isEmpty(orderField)) { sql = " order by " + orderField + ' ' + orderType; } sql永远为自动排序模式 《2》这个方法比较简单,思路就是在第一次访问时,grid的手动排序就以默认的方式传递参数;