0

こんにちは、私は現在jsonデータでjqgridを使用していますが、現在は正常に読み取られていますが、埋め込まれたオブジェクトをグリッドに読み取るのに苦労しています。したがって、私のjsonデータは次のようになります。

{"total":1,"page":"1","records":1,"rows":[{"Cell1":1,"Cell2":"stuff","Cell3":{"date":"2013-06-02 10:56:00","timezone_type":3,"timezone":"UTC"}}]}

jqgridにCell3を1つのデータとして読み込み、それを解釈して日付と時刻を表示する方法を知っている人はいますか?

私の現在のjsonリーダーは次のとおりです。

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

みんなありがとう

4

1 に答える 1

0

まず、選択肢jsonReader: {repeatitems: false, id: "0"}が間違っています。の整数値はid、使用デフォルト設定の場合に使用できますrepeatitems: true。この場合、グリッドの行を表すデータは、["1", "Cell2"]名前付きプロパティを持つオブジェクトではなく、配列のように見えます{"Cell1": 1, "Cell2": "stuff"}。グリッドの行の一意として使用する値が含まれているjsonReader: {repeatitems: false, id: "Cell1"}場合に使用する必要があります。Cell1id

ここで、主な質問に戻ります。からデータのフォーマットを変更することをお勧めします

{
    "total": 1,
    "page": "1",
    "records": 1,
    "rows": [
        {
            "Cell1": 1,
            "Cell2": "stuff",
            "Cell3": {
                "date": "2013-06-02 10:56:00",
                "timezone_type": 3,
                "timezone": "UTC"
            }
        }
    ]
}

{
    "total": 1,
    "page": "1",
    "records": 1,
    "rows": [
        {
            "Cell1": 1,
            "Cell2": "stuff"
        }
    ],
    "userdata": {
        "1": {
            "date": "2013-06-02 10:56:00",
            "timezone_type": 3,
            "timezone": "UTC"
        }
    }
}

他のユーザーにとっても明確になるように、私の提案にコメントしてください。列Cell1には が含まれていidます。私が提案する構造はuserdata、rowid (の値Cell1) からのマップと、最初に保存する必要があるカスタム情報です"Cell3"

コードのどこかに"Cell3"値が必要な場合、コードは次のようになります

onSelectRow: function (rowid) {
    var cell3 = $(this).jqGrid("getGridParam", "userData")[rowid];
    // now you can use cell3 which coniains the object like
    // {
    //     "date": "2013-06-02 10:56:00",
    //     "timezone_type": 3,
    //     "timezone": "UTC"
    // }
}
于 2013-06-24T19:00:39.970 に答える