jqGrid с болью в голове dynmaic данных - PullRequest
0 голосов
/ 08 марта 2011

Привет! Я реализую jqGrid с динамическими данными, возвращаемыми из серверной части. Я следую аналогичному решению, как описано здесь:

аналогичный стек над вопросом о потоке

Каккогда-то по какой-то причине клетки не будут заполнять данные, я пробовал бесконечные разные подходы, но не могу получить удовольствие.Ниже приведен код:

        $.ajax({
    type: "GET",
    url: "http://cw-epjdp-d01.tm-gnet.com:10040/wps/PA_Resource_Manager_1/JSONMovementServlet",
    dataType: "json",
    success: function(result){
            var colD = result;
            //console.log(colD);
            var colN = result.MOVEMENTS.columnNames;
            var colM = result.MOVEMENTS.colModelList;
            console.log(colN);
        $("#movementTable").jqGrid({
            datatype: 'local',
            data: colD.MOVEMENTS.rows,
            colNames: colN,
            colModel :colM,
            height: "auto", 
            loadComplete: function(data){
                console.log("data loaded...");
            },
            loadError: function(xhr,status,error){
                alert('error');
            }
        });
    },
    error: function(x, e){
        alert(x.readyState + " "+ x.status +" "+ e.msg);
    }
});

Ниже приведен пример возвращаемого JSON:

{
"MOVEMENTS": {
    "currpage": "1",
    "totalpages": "3",
    "totalrecords": "8",
    "rows": [
        {
            "id": "uid\u003dAshokPandey",
            "cells": [
                {
                    "NAME": "uid\u003dAshokPandey",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Holiday",
                    "DAY3": "Holiday",
                    "DAY4": "Holiday",
                    "DAY5": "Holiday",
                    "DAY6": "Holiday",
                    "DAY7": "Holiday",
                    "DAY8": "Holiday",
                    "DAY9": "Holiday",
                    "DAY10": "Holiday",
                    "DAY11": "Holiday",
                    "DAY12": "Holiday",
                    "DAY13": "Holiday",
                    "DAY14": "Holiday"
                }
            ]
        },
        {
            "id": "uid\u003dGarethHarris",
            "cells": [
                {
                    "NAME": "uid\u003dGarethHarris",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Canary Wharf",
                    "DAY3": "Canary Wharf",
                    "DAY4": "Canary Wharf",
                    "DAY5": "Canary Wharf",
                    "DAY6": "Canary Wharf",
                    "DAY7": "Canary Wharf",
                    "DAY8": "Canary Wharf",
                    "DAY9": "Canary Wharf",
                    "DAY10": "Canary Wharf",
                    "DAY11": "Canary Wharf",
                    "DAY12": "Canary Wharf",
                    "DAY13": "Canary Wharf",
                    "DAY14": "Canary Wharf"
                }
            ]
        },
        {
            "id": "uid\u003dKeithPriddle",
            "cells": [
                {
                    "NAME": "uid\u003dKeithPriddle",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Canary Wharf",
                    "DAY3": "Canary Wharf",
                    "DAY4": "Canary Wharf",
                    "DAY5": "Canary Wharf",
                    "DAY6": "Canary Wharf",
                    "DAY7": "Canary Wharf",
                    "DAY8": "Canary Wharf",
                    "DAY9": "Canary Wharf",
                    "DAY10": "Canary Wharf",
                    "DAY11": "Canary Wharf",
                    "DAY12": "Canary Wharf",
                    "DAY13": "Canary Wharf",
                    "DAY14": "Canary Wharf"
                }
            ]
        },
        {
            "id": "uid\u003dJonathanPopoola",
            "cells": [
                {
                    "NAME": "uid\u003dJonathanPopoola",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Sickness",
                    "DAY3": "Sickness",
                    "DAY4": "Sickness",
                    "DAY5": "Sickness",
                    "DAY6": "Sickness",
                    "DAY7": "Sickness",
                    "DAY8": "Sickness",
                    "DAY9": "Sickness",
                    "DAY10": "Sickness",
                    "DAY11": "Sickness",
                    "DAY12": "Sickness",
                    "DAY13": "Sickness",
                    "DAY14": "Sickness"
                }
            ]
        },
        {
            "id": "uid\u003dNaveedZaib",
            "cells": [
                {
                    "NAME": "uid\u003dNaveedZaib",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Sickness",
                    "DAY3": "Sickness",
                    "DAY4": "Sickness",
                    "DAY5": "Sickness",
                    "DAY6": "Sickness",
                    "DAY7": "Sickness",
                    "DAY8": "Sickness",
                    "DAY9": "Sickness",
                    "DAY10": "Sickness",
                    "DAY11": "Sickness",
                    "DAY12": "Sickness",
                    "DAY13": "Sickness",
                    "DAY14": "Sickness"
                }
            ]
        },
        {
            "id": "uid\u003dPooyanFarahani",
            "cells": [
                {
                    "NAME": "uid\u003dPooyanFarahani",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Canary Wharf",
                    "DAY3": "Canary Wharf",
                    "DAY4": "Canary Wharf",
                    "DAY5": "Canary Wharf",
                    "DAY6": "Canary Wharf",
                    "DAY7": "Canary Wharf",
                    "DAY8": "Canary Wharf",
                    "DAY9": "Canary Wharf",
                    "DAY10": "Canary Wharf",
                    "DAY11": "Canary Wharf",
                    "DAY12": "Canary Wharf",
                    "DAY13": "Canary Wharf",
                    "DAY14": "Canary Wharf"
                }
            ]
        },
        {
            "id": "uid\u003dWendyBuchta",
            "cells": [
                {
                    "NAME": "uid\u003dWendyBuchta",
                    "DAY1": "Canary Wharf",
                    "DAY2": "AWOL",
                    "DAY3": "AWOL",
                    "DAY4": "AWOL",
                    "DAY5": "AWOL",
                    "DAY6": "AWOL",
                    "DAY7": "AWOL",
                    "DAY8": "AWOL",
                    "DAY9": "AWOL",
                    "DAY10": "AWOL",
                    "DAY11": "AWOL",
                    "DAY12": "AWOL",
                    "DAY13": "AWOL",
                    "DAY14": "AWOL"
                }
            ]
        },
        {
            "id": "uid\u003dEdwardRios",
            "cells": [
                {
                    "NAME": "uid\u003dEdwardRios",
                    "DAY1": "Canary Wharf",
                    "DAY2": "Canary Wharf",
                    "DAY3": "Canary Wharf",
                    "DAY4": "Canary Wharf",
                    "DAY5": "Canary Wharf",
                    "DAY6": "Canary Wharf",
                    "DAY7": "Canary Wharf",
                    "DAY8": "Canary Wharf",
                    "DAY9": "Canary Wharf",
                    "DAY10": "Canary Wharf",
                    "DAY11": "Canary Wharf",
                    "DAY12": "Canary Wharf",
                    "DAY13": "Canary Wharf",
                    "DAY14": "Canary Wharf"
                }
            ]
        }
    ],
    "colModelList": [
        {
            "INDEX": "NAME",
            "LABEL": "NAME",
            "WIDTH": "90",
            "NAME": "NAME",
            "JSONMAP": "CELLS.0.NAME"
        },
        {
            "INDEX": "Mon Jan 31",
            "LABEL": "Mon Jan 31",
            "WIDTH": "90",
            "NAME": "Mon Jan 31",
            "JSONMAP": "CELLS.0.Mon Jan 31"
        },
        {
            "INDEX": "Tue Feb 01",
            "LABEL": "Tue Feb 01",
            "WIDTH": "90",
            "NAME": "Tue Feb 01",
            "JSONMAP": "CELLS.0.Tue Feb 01"
        },
        {
            "INDEX": "Wed Feb 02",
            "LABEL": "Wed Feb 02",
            "WIDTH": "90",
            "NAME": "Wed Feb 02",
            "JSONMAP": "CELLS.0.Wed Feb 02"
        },
        {
            "INDEX": "Thu Feb 03",
            "LABEL": "Thu Feb 03",
            "WIDTH": "90",
            "NAME": "Thu Feb 03",
            "JSONMAP": "CELLS.0.Thu Feb 03"
        },
        {
            "INDEX": "Fri Feb 04",
            "LABEL": "Fri Feb 04",
            "WIDTH": "90",
            "NAME": "Fri Feb 04",
            "JSONMAP": "CELLS.0.Fri Feb 04"
        },
        {
            "INDEX": "Sat Feb 05",
            "LABEL": "Sat Feb 05",
            "WIDTH": "90",
            "NAME": "Sat Feb 05",
            "JSONMAP": "CELLS.0.Sat Feb 05"
        },
        {
            "INDEX": "Sun Feb 06",
            "LABEL": "Sun Feb 06",
            "WIDTH": "90",
            "NAME": "Sun Feb 06",
            "JSONMAP": "CELLS.0.Sun Feb 06"
        },
        {
            "INDEX": "Mon Feb 07",
            "LABEL": "Mon Feb 07",
            "WIDTH": "90",
            "NAME": "Mon Feb 07",
            "JSONMAP": "CELLS.0.Mon Feb 07"
        },
        {
            "INDEX": "Tue Feb 08",
            "LABEL": "Tue Feb 08",
            "WIDTH": "90",
            "NAME": "Tue Feb 08",
            "JSONMAP": "CELLS.0.Tue Feb 08"
        },
        {
            "INDEX": "Wed Feb 09",
            "LABEL": "Wed Feb 09",
            "WIDTH": "90",
            "NAME": "Wed Feb 09",
            "JSONMAP": "CELLS.0.Wed Feb 09"
        },
        {
            "INDEX": "Thu Feb 10",
            "LABEL": "Thu Feb 10",
            "WIDTH": "90",
            "NAME": "Thu Feb 10",
            "JSONMAP": "CELLS.0.Thu Feb 10"
        },
        {
            "INDEX": "Fri Feb 11",
            "LABEL": "Fri Feb 11",
            "WIDTH": "90",
            "NAME": "Fri Feb 11",
            "JSONMAP": "CELLS.0.Fri Feb 11"
        },
        {
            "INDEX": "Sat Feb 12",
            "LABEL": "Sat Feb 12",
            "WIDTH": "90",
            "NAME": "Sat Feb 12",
            "JSONMAP": "CELLS.0.Sat Feb 12"
        },
        {
            "INDEX": "Sun Feb 13",
            "LABEL": "Sun Feb 13",
            "WIDTH": "90",
            "NAME": "Sun Feb 13",
            "JSONMAP": "CELLS.0.Sun Feb 13"
        }
    ],
    "columnNames": [
        "NAME",
        "Mon Jan 31",
        "Tue Feb 01",
        "Wed Feb 02",
        "Thu Feb 03",
        "Fri Feb 04",
        "Sat Feb 05",
        "Sun Feb 06",
        "Mon Feb 07",
        "Tue Feb 08",
        "Wed Feb 09",
        "Thu Feb 10",
        "Fri Feb 11",
        "Sat Feb 12",
        "Sun Feb 13"
    ]
}

}

Обратите внимание, что JSON действителен с http://www.jsonlint.com/ У меня нет выбора, кроме как использовать предоставленный идентификатор.

Заранее большое спасибо

Ответы [ 2 ]

0 голосов
/ 08 марта 2011

В предыдущем ответе я говорю вам, что вы должны использовать jsonReader параметр jqGrid. Использование идентификаторов с символом «=» внутри тоже очень плохо. Например, если у вас в базе данных есть "uid=AndrewBryant" в качестве идентификатора, вы можете поместить "AndrewBryant" в данные JSON в качестве идентификатора HTML. Я не согласен, если вы скажете, что у вас нет «выбора».

В вашем текущем примере вы допустили столько ошибок на стороне сервера и не использовали jsonReader или localReader, что трудно комментировать. Например, вы используете cells в данных и "CELLS" в свойстве столбца jsonmap, которое вы неправильно указали как JSONMAP. В JavaScript регистр символов очень важен. Более того, вы используете "NAME": "Mon Jan 31" вместо «name» и идентификатор в качестве значения. Идентификатор может не иметь пробелов. Конечно, у вас нет данных со свойством «Пн 31 января» внутри данных JSON.

В конце вы используете параметр data (data: colD.MOVEMENTS.rows), который означает использование localReader вместо jsonReader (см. здесь дополнительную информацию о localReader).

Извините, но ваш текущий код и данные настолько грязные и содержат столько ошибок, что все выглядит как мусор и не может работать.

0 голосов
/ 08 марта 2011

ознакомьтесь с демонстрацией загрузки данных JSON на http://www.trirand.com/blog/jqgrid/jqgrid.html

или использование jsonReader на http://www.trirand.com/jqgridwiki/doku.php?id=wiki:retrieving_data

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...