0

私は次のようなjsonを持っています

[
    {
        "switchType": {
            "name": "sansayv15",
            "perform": false,
            "createBy": null,
            "createDate": null,
            "intId": 1,
            "id": 1
        },
        "collectorType": {
            "name": "FTP",
            "perform": false,
            "createBy": null,
            "createDate": null,
            "intId": 1,
            "id": 1
        },
        "fileType": {
            "name": "TEXT",
            "perform": false,
            "createBy": null,
            "createDate": null,
            "intId": 1,
            "id": 1
        },
        "exportType": {
            "name": "DB",
            "perform": false,
            "createBy": null,
            "createDate": null,
            "intId": 1,
            "id": 1
        },
        "linesToSkip": "1",
        "checkValidate": "true",
        "checkDuplicate": "true",
        "driver": "com.mysql.jdbc.Driver",
        "url": "jdbc:mysql://localhost:3306/panamaxmediation",
        "tableName": "sansayv15",
        "ftpIp": null,
        "ftpPort": null,
        "ftpUserName": null,
        "ftpPassword": null,
        "sftpIp": null,
        "sftpPort": null,
        "sftpUserName": null,
        "sftpPassword": null,
        "name": "sansayv15",
        "password": "root",
        "userName": "root",
        "perform": false,
        "createBy": null,
        "createDate": null,
        "intId": 1,
        "id": 1
    }
]

これは私のサービスからの出力として提供されます。この出力を、EnhancedGridのMemorryStoreよりもJsonResStoreとObjectStoreの2つのストアで利用します

変数でグリッド構造を定義しています、

var templateGridStructure = [ {
        name : "ID",
        field : "id",
        hidden : "true"
    }, {
        name : "Name",
        field : "name",
        width : "auto"
    }, {
        name : "Collection Method",
        field : "_item",
        width : "auto",
        formatter : function(item) {
            return item.collectorType.name;
        }
    }, {
        name : "Export Method",
        field : "_item",
        width : "auto",
        formatter : function(item) {
            return item.exportType.name;
        }
    },  {
        name : "Source File Type",
        field : "_item",
        width : "auto",
        formatter : function(item) {
            return item.fileType.name;
        }
    },{
        name : "Duplication Check",
        field : "checkDuplicate",
        width : "auto",
    },{
        name : "Validation Check",
        field : "checkValidate",
        width : "auto",

    },{
        name : "Switch Type",
        field : "_item",
        width : "auto",
        formatter : function(item) {
            return item.switchType.name;
        }
    } ];

EnhancedGridでObjectStoreを使用する場合

templateGrid = new dojox.grid.EnhancedGrid({
                id : "templateGrid",
                name : "templateGrid",
                store : objectStore});

グリッドは正しいデータを表示していますが、EnhancedGridでJsonRestStoreを使用すると

templateGrid = new dojox.grid.EnhancedGrid({
                id : "templateGrid",
                name : "templateGrid",
                store : jsonRestStore});

エラーが発生します-グリッドにデータが表示されていません。

これら2つのストアの列構造の定義に違いはありますか?

4

1 に答える 1

0

間違いを見つけました、礼儀:Dojo IRC "Ravi:dojo / dataストアのアイテムに直接アクセスするべきではありません"代わりに、フォーマッターメソッドでアイテムを直接使用します

{
        name : "Switch Type",
        field : "_item",
        width : "auto",
        formatter : function(item) {
            return item.switchType.name;
        }
    }

store.getValue(item、property)、JsonRestStoreを使用し、アイテムへの直接アクセスを許可しない

{
        name : "Switch Type",
        field : "_item",
        width : "auto" ,
        formatter : function(item) {
            return store.getValue(item,"switchType").name;
        } 
    }

私は誰かがこれから助けを得ることを願っています

于 2012-06-07T15:29:48.317 に答える