JQuery JQGrid свойства с оператором точки - PullRequest
1 голос
/ 01 августа 2011

У меня есть JSON со свойством, имеющим точку "." оператор в нем. Когда я пытаюсь визуализировать свою сетку, она выглядит пустой (без ошибок).

Вот мой JSON:

{
            "total":1,
        "page":1,
        "records":2,
        "rows":[{
                "id":2110040,
                "cell":{
                "function.code":"dsadad",
                        "service.name":"dsadasda"

                }
            },
            {
                "id":2115040,
                "cell":{
                 "function.code":"iuiyuiy",
                     "service.name":"iyuiyuiy"

                }
            }
        ]
    }

это моя колмодель

colModel : [ {
        name : 'service.name',
        search : 'true',
        editable : true,
        //index : 'service.name',
        width : 200,
        jsonmap : "cell.service.name"           
    },
    {
        name : 'function.code',
        search : 'true',
        editable : true,
        sortable:true,
        //index : 'function.code',
        width : 200,
        jsonmap : "cell.function.code"          
    }],

JSON ридер:

jsonReader : {
        repeatitems : false,
        root : "rows",
        cell : "cell",
        id : "id",
        page : "page",
        records : "records"
    },

Пожалуйста, помогите, что мне здесь не хватает ??

Спасибо!

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Мне интересный вопрос. Это близко к проблеме, описанной здесь , но в случае JSON вместо XML.

Проблема в том, что jqGrid пытается читать строки с отношением obj.cell.function.code вместо obj.cell['function.code']. Чтобы позволить jqGrid правильно читать данные, вы можете использовать функции как jsonmap:

colModel: [
    {
        name: 'service_name',
        search: 'true',
        editable: true,
        width: 200,
        jsonmap: function (obj) {
            return obj.cell['service.name'];
        }
    },
    {
        name: 'function_code',
        search: 'true',
        editable: true,
        sortable: true,
        width: 200,
        jsonmap: function (obj) {
            return obj.cell['function.code'];
        }
    }
]

Как вы можете увидеть на демо подход к работе.

0 голосов
/ 01 августа 2011

Попробуйте это

colModel : [ {
        name : 'service.name',
        search : 'true',
        editable : true,
        //index : 'service.name',
        width : 200,
        jsonmap : 'cell["service.name"]'           
    },
    {
        name : 'function.code',
        search : 'true',
        editable : true,
        sortable:true,
        //index : 'function.code',
        width : 200,
        jsonmap : 'cell["function.code"]'          
    }],
...