首页 / 浏览问题 / 云GIS / 问题详情
iclient sql查询返回字段排序
545EXP 2018年12月29日

RT,查看官方示例http://supermap.com:8090/iserver/iClient/forJavaScript/examples/leaflet/editor.html#01_mapQueryBySQL

修改代码如下:

    function query() {
        var param = new SuperMap.QueryBySQLParameters({
            queryParams: {
                name: "Capitals@World.1",
                attributeFilter: "SMID > 0",
                orderBy: "CAP_POP desc",
                fields: ["SmID","COUNTRY","CAPITAL"]
            },
            startRecord: 0,
            expectCount: 20
        });
        L.supermap
            .queryService(url)
            .queryBySQL(param, function (serviceResult) {
                var result = serviceResult.result;
                resultLayer = L.geoJSON(result.recordsets[0].features).addTo(map);
                console.log(result.recordsets[0].features);
            });
    }

但是返回结果的字段排序没有按照"SmID","COUNTRY","CAPITAL"这个顺序,是默认返回全部字段的顺序。

问下是否有可以控制返回字段排序的方法

2 个回答

您好,我这边按照您的代码,返回的值是排序成功的
1,076EXP 2018年12月29日

这样看貌似是排序了,但是你把节点展开

就没有排序了,我之后是用表格去展示,不是排序的

您这个返回的是一个json对象,这个是没有顺序的,您到时候直接取键填充进表格就可以了
你的意思是表头和表格内容分开加载么?
是的,您先设置好表头,然后直接将查询的内容按顺序填充就可以了
这个可能不考虑,用的vue,如果改动的话,涉及地方较多,不过谢谢了

<!--StartFragment -->

 对多个字段排序时,字段之间以英文逗号进行分割,用法为 orderBy = "字段名1, 字段名2"

3,357EXP 2018年12月29日
感谢回答,不过不是属性的排序,是表头的排序

可以查看下supermap.FieldService,

分别创建一个查询服务和一个字段服务,返回的结果看能满足你的要求不

...