一尘不染

jqgrid json阅读器,用于arcgis服务器查询结果

json

我需要哪种类型的json阅读器在jqgrid中绘制此类数据?

谢谢!


阅读 262

收藏
2020-07-27

共1个答案

一尘不染

您遇到了奇怪的问题,以及有关一切的问题jsonReader。在当前情况下,您可以使用

jsonReader: {
    root: 'features',
    repeatitems: false
}

读取数据。该演示展示了结果如何:

在此处输入图片说明

更新 :据我了解,您真正想要做的是调用一些 外部
URL,这些URL为您提供JSON。由于安全原因,无法对另一台服务器执行标准Ajax请求(请参阅同一原始策略)。幸运的是,服务器sampleserver1.arcgisonline.com/ArcGIS支持JSONP请求。因此,要使用外部数据填充网格,可以使用以下代码

$('#grid').jqGrid({
    url: 'http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/4/query',
    datatype: 'jsonp',
    postData: $.param({
        where: "1=1",
        returnGeometry: false,
        outFields: "ObjectID,NAME,STATE_NAME,CNTY_FIPS",
        f: "json"
    }),
    colModel: [
        {name: 'ObjectID', label: 'ID', width: 60, jsonmap: 'attributes.ObjectID'},
        {name: 'NAME', label: 'Name', width: 150, jsonmap: 'attributes.NAME'},
        {name: 'STATE_NAME', label: 'State', width: 120, jsonmap: 'attributes.STATE_NAME'},
        {name: 'CNTY_FIPS', label: 'FIPS', width: 60, jsonmap: 'attributes.CNTY_FIPS'}
    ],
    toppager: true,
    jsonReader: {
        root: 'features',
        repeatitems: false
    },
    loadonce: true,
    ignoreCase: true,
    height: 'auto'
});

此处查看新的演示。

更新2 :为了能够使用本地搜索/过滤,应该修改上面的代码。最好postData将上面看到的替换为以下参数

ajaxGridOptions: { cache: true },
prmNames: {search: null, nd: null, sort: null, rows: null, order: null, page: null},
postData: {
    where: "1=1",
    returnGeometry: false,
    outFields: "ObjectID,NAME,STATE_NAME,CNTY_FIPS",
    f: "json"
}

请参阅相应的演示在哪里filterToolbar工作。

2020-07-27