1

そこの!
jqGridに空の列が1つあります。
しかし、私はクロームコンソールでオブジェクトをチェックしました、そしてそれは大丈夫です。

colModelの定義

colModel:[
    {name:'id',index:'id', width:55,editable:false,editoptions:{readonly:true,size:10},hidden:true},
    {name:'firstName',index:'firstName', width:100,searchoptions: { sopt: ['eq', 'ne', 'cn']}},
    {name:'lastName',index:'lastName', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
    {name:'books[0].nome',index:'books[0].nome', width:100,editable:true, editrules:{required:true}, editoptions:{size:10}},
    {"formatter":"myfunction", formatoptions:{baseLinkUrl:'/demo/{firstName}|view-icon'}}
]

JSON応答

{
    "total": "10",
    "page": "1",
    "records": "3",
    "rows": [
        {
            "id": 1,
            "firstName": "John",
            "lastName": "Smith",
            "books": [{"nome": "HeadFirst"}]
        },
        {
            "id": 2,
            "firstName": "Jane",
            "lastName": "Adams",
            "books": [{"nome": "DalaiLama"}]
        },
        {
            "id": 35,
            "firstName": "Jeff",
            "lastName": "Mayer",
            "books": [{"nome": "Bobymarley"}]
        }
    ]
}

クロームコンソール検査オブジェクト

rowdata.books[0].nome
"HeadFirst"

可能性のあるトリックがどこにあるか知っている人はいますか?

Tks!

4

2 に答える 2

1

JavaScriptのプロパティ名およびCSSID名として使用できる名前のみのnameプロパティの値として使用する必要があります。colModelしたがって、の使用法はname:'books[0].nome'お勧めできません。

問題を解決するには、を使用できますjsonmap。たとえば、ドット名変換を使用できます。

{name: 'nome', jsonmap: 'books.0.nome', ...

より複雑なケースでは、関数をの値として使用できますjsonmap。例えば

{name: 'nome', jsonmap: function (item) {
        return item.books[0].nome;
    }, ...

jsonmap他の古い回答の使用法に関するいくつかのコード例を見つけることができます:ここここ、ここ、ここここここ

于 2012-05-24T05:15:30.210 に答える
0

nameJSONオブジェクトへの参照ではなく、行の一意の名前にすることを目的としています。jqGrid colModelオプションのドキュメントから:

列のグリッドに一意の名前を設定します。このプロパティは必須です。プロパティ/イベント名として使用される他の単語と同様に、予約語(名前には使用できません)には、subgrid、cb、およびrnが含まれます。

grid.base.js.name内でどのように使用されているかも観察できます-例:

var nm = {},
...
nm = $t.p.colModel[i].name;
...
res[nm] = $.unformat.call($t,this,{rowId:ind.id, colModel:$t.p.colModel[i]},i);

とにかく、あなたの質問に戻るために、私はあなたが本の名前を直接(オブジェクトではなく文字列として)渡し、名前でそれをのようなものとして参照することによってより幸運になると思いますbookName

于 2012-05-24T02:58:41.697 に答える