关于EOVA元对象多字段排序问题
五指境 发布于96月前 1答/1323阅

我想实现的功能:

对一个数据表进行三字段排序


过程中遇到的问题:

元数据配置如下:

后台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的手动排序就以默认的方式传递参数;
提交评论
嘿,我来帮你!