SmartGWT TreeGrid Источник данных, заполненный вложенным массивом JSON - PullRequest
2 голосов
/ 09 июля 2011

Я попытался сделать то же, что и в примере, но использовал JSON вместо XML

Smart GWT Tree

Когда я делаю это с использованием XML, он отлично работает, но загружает только первые дочерние элементы, когда я использую JSON.

Вот XML:

<response>
<errors />
<data>
    <project>
        <id>3</id>
        <name>Checho Project</name>
        <sprints>
            <project>
                <id>4</id>
                <name>Backlog</name>
            </project>
        </sprints>
    </project>
</data>
</response>

А вот и JSON:

{"response":
   {"errors":"","data":
     {"project":[{"id":1,"name":"Bee Project","sprints":
                                                 {"project":[{"id":3,"name":"sprint3"},{"id":4,"name":"sprint2"},{"id":2,"name":"sprint1"}]}},
                    {"id":5,"name":"Checho Project","sprints":
                                                  {"project":{"id":6,"name":"Backlog"}}}]
     }
   }
}

private ProjectDS(String id) {

    setID(id);
    setRecordXPath("/response/data/*");
    // setRecordXPath("/Employees/*");
    // DataSourceTextField nameField = new DataSourceTextField("Name", "Name", 128);
    //
    // DataSourceIntegerField employeeIdField = new DataSourceIntegerField("EmployeeId", "Employee ID");
    // employeeIdField.setPrimaryKey(true);
    // employeeIdField.setRequired(true);

    DataSourceTextField idField = new DataSourceTextField("id", "Id", 128, true);
    idField.setHidden(true);
    idField.setPrimaryKey(true);

    DataSourceTextField itemNameField = new DataSourceTextField("name", "Item", 128, true);

    DataSourceField reportsToField = new DataSourceField();
    reportsToField.setName("sprints");
    reportsToField.setChildrenProperty(true);

    setFields(idField, itemNameField, reportsToField);

    setDataFormat(DSDataFormat.JSON);
    setDataURL("bee_gui/sc/ds.xml");
    setClientOnly(true);

}

Кто-нибудь имел дело с этим?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 05 октября 2011

Используйте объект JSON таким образом, тогда вы получите решение

{"List":
    {"employee":
        [{"EmployeeId":4,"ReportsTo":1,"Name":"Seg 1", "Job":"Chief Operating Officer","Salary":260000},{"EmployeeId":192,"ReportsTo":4,"Name":"Leg 1","Job":"Mgr Cap Rptg Dist","Salary":460000},{"EmployeeId":5,"ReportsTo":1,"Name":"Seg 2", "Job":"Chief Operating Officer","Salary":260000},{"EmployeeId":193,"ReportsTo":5,"Name":"Leg 2","Job":"Mgr Cap Rptg Dist","Salary":460000}]
    }
}
0 голосов
/ 09 августа 2011

Я использую «Javascript Overly Types» для моего анализа JSON

Посмотрите здесь, если вы хотите узнать больше: http://googlewebtoolkit.blogspot.com/2008/08/getting-to-really-know-gwt-part-2.html

Они довольно легкая работаочень хорошо!

PS: Извините, что я не могу помочь вам с вашим примером ...

...