1

APIからJQGridを読み込んでいます。グリッド用に持っているデータ構造の1つは、次のようにフォーマットされたJSON要素です。

{"id":123,"name":"John Doe","username":"john.doe"}

データはグリッドに正しく表示されますが、ツールバー検索を入力しようとすると、おそらくjqgridに上記のJSONがオブジェクトとして保存されているため、一致するものが得られません。

私のグリッドの切り捨てられたバージョンは次のとおりです。

$('#test').jqGrid({
...
loadonce: true,
datatype: 'local',
colModel: [
{name:'test', index:'test', label:'Test', formatter:customFormatter}
],
...
});

function customFormatter (cellvalue,options) {
                return cellvalue.name;
}

私はこの問題に対処しているように見えるこの投稿を見つけましたが、JSONオブジェクトにこれを使用する方法について頭を悩ませています。グリッドがロードされると、ローカルデータが文字列以外のものである必要がある理由がわかりません(グリッドがリロードされるまで)。

4

2 に答える 2

0

JSON入力のプロパティの名前に対応するnameプロパティを選択する必要があります。colModelだから、ただ使うのはネイティブです

colModel: [
    {name: "name", label: "Name"}
    {name: "username", label: "User Name"}
]

JSON入力の一部の名前を別の名前に再マップする必要がある場合は、プロパティcolModelを使用する必要がありjsonmapます。例えば

colModel: [
    {name: "test1", label: "Name", jsonmap: "name"}
    {name: "test2", label: "User Name", jsonmap: "username"}
]

の使用の場合は不可能であるため、index異なる使用法。またはその他のメタ文字を持つプロパティの値を使用することはお勧めしません。プロパティはグリッドの多くの要素のプロパティを構築するために使用されるため、制限が存在します。nameloadonce: truename.nameid

于 2012-12-15T17:22:26.710 に答える
0

ドキュメントでJSONドット表記を見つけてインデックスに追加すると、次のように機能します。

colModel: [
    {name:'test.name', index:'test.name', label:'Test'}
]
于 2012-12-15T14:48:24.397 に答える