0

Dojo データ・グリッドをリモート・サーバーに構成できません。私がフォローしているチュートリアルの例は次のとおりです。

http://dojotoolkit.org/documentation/tutorials/1.6/populating_datagrid/demo/datagrid-items.html

私のコードは単一のjspで書かれており、ここに示されています:

<!DOCTYPE HTML>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Demo: dojox.grid.DataGrid Simple Structure</title>
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojo/resources/dojo.css">
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dijit/themes/claro/claro.css">
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/Grid.css">
        <link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/dojo/1.6/dojox/grid/resources/claroGrid.css">


        <!-- load dojo and provide config via data attribute -->
        <script src="http://ajax.googleapis.com/ajax/libs/dojo/1.6.0/dojo/dojo.xd.js"
                data-dojo-config="isDebug: true,parseOnLoad: true">
        </script>
        <script>
            dojo.require("dojox.grid.DataGrid");
            dojo.require("dojo.data.ItemFileWriteStore");

            var grid, store;
            dojo.ready(function(){
                store = new dojo.data.ItemFileWriteStore({
                    url: "MilestoneAjaxPopulateMsListEditor.json"
                });
                        grid = new dojox.grid.DataGrid({
                            query: { id: "*" },
                            store: store,
                            structure: [
                                { name: "First Name", field: "first", width: "25%" },
                                { name: "Last Name", field: "last", width: "25%" }
                            ]
                        },dojo.byId("grid"));
                        grid.startup();
            });
        </script>
    </head>
    <body class="claro">
    <%@ include file="ui_init.jsp" %>
        <h1>Demo: dojox.grid.DataGrid Simple Structure</h1>

        <br/>
        <div id="grid"></div>
        <%@ include file="footer.jsp" %>
    </body>
</html>

Ajax 要求はエラーなしで完了します (200 OK 応答コードを取得します)。リモート サーバーから次の JSON を取得していますが、firebug に表示されます。

{"msdetails":[ 
    {"first":"146", "last":"Concept Commit"}
,   {"first":"147", "last":"Execution Commit"}
,   {"first":"148", "last":"EFT Start"}
,   {"first":"149", "last":"Throttle Pull Review"}
,   {"first":"150", "last":"Throttle Pull"}
,   {"first":"151", "last":"PSIRT Verification"}
,   {"first":"152", "last":"Commit Test"}
,   {"first":"153", "last":"FTS Complete"}
,   {"first":"154", "last":"Image List"}
,   {"first":"155", "last":"Upgrade Planner"}
,   {"first":"156", "last":"Market Matrix"}
,   {"first":"157", "last":"Reg Test Cmp"}
,   {"first":"158", "last":"ISSU CM Creation"}
,   {"first":"144", "last":"Build Start Time"}
,   {"first":"159", "last":"ISSU CM Verification"}
,   {"first":"160", "last":"OPUS"}
,   {"first":"161", "last":"Docs Complete"}
,   {"first":"162", "last":"TAC Readiness"}
,   {"first":"145", "last":"CCO FCS"}
,   {"first":"163", "last":"Field CCO FCS"}
,   {"first":"164", "last":"HPC Date"}
,   {"first":"165", "last":"EoLA"}
,   {"first":"166", "last":"EoS"}
,   {"first":"167", "last":"EoL/EoSM"}
,   {"first":"168", "last":"EoVS Date"}
,   {"first":"169", "last":"End of Support"}
 ]}

私が得るエラーは次のとおりです。

Dojo データグリッド エラー

このエラーに関するヒントを教えてください。

4

1 に答える 1

1

ItemWriteStore が適切に機能するには、json の配列部分にキー名を「items」として指定する必要があります。また、json オブジェクトにキー「id」が必要です。そうでない場合は、id として機能するキーも指定する必要があります。 json オブジェクトの

{"identifier:"first","items":[ 
    {"first":"146", "last":"Concept Commit"}
,   {"first":"147", "last":"Execution Commit"}
,   {"first":"148", "last":"EFT Start"}
,   {"first":"149", "last":"Throttle Pull Review"}]}
于 2012-08-13T08:58:15.553 に答える