jqgrid json reader для результатов запроса arcgis сервера - PullRequest
1 голос
/ 06 марта 2012

Какой json-ридер мне нужен для вывода таких данных, как эти в jqgrid?

Спасибо!

1 Ответ

0 голосов
/ 06 марта 2012

У вас странные вопросы и все о jsonReader.В текущем случае вы можете использовать

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

для чтения данных. Демо показывает, как могут выглядеть результаты:

enter image description here

ОБНОВЛЕНО : Как я понимаю, то, что вы действительно хотите сделать, этопозвонить на какой-нибудь внешний 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.

...