我有一个XMLStore,用于DataGrid的源代码。我能够提取出在数据网格中使用的顶级字段,但是我不知道如何从XML中提取出嵌套很深的字段。
下面是我的XML数据示例:
<ns1:CourseDetail>
<ns1:subject_code>ABC</ns1:subject_code>
<ns1:catalog_nbr>100</ns1:catalog_nbr>
<ns1:descr>Some Class</ns1:descr>
<ns1:MeetingCollection>
<ns1:Meeting>
<ns1:meeting_nbr>1</ns1:meeting_nbr>
<ns1:InstructorCollection>
<ns1:Instructor>
<ns1:fullname>John Smith</ns1:fullname>
<ns1:id/>
</ns1:Instructor>
</ns1:InstructorCollection>
<ns1:bldg_id>999</ns1:bldg_id>
</ns1:Meeting>
</ns1:MeetingCollection>
</ns1:CourseDetail>
下面是我用来设置网格的javascript:
var gridOptions = {
store: sectionStore,
query: {"ns1:subject_code": "*"},
structure: [
{name: "Class", field: "ns1:catalog_nbr", width: "150px"}
, {name: "Desc", field: "ns1:descr", width: "250px"}
, {name: "Instr", field: "ns1:fullname", width: "200px"}
]
};
var grid = new dojox.grid.DataGrid(gridOptions, "sectionsDataGrid");
grid.startup();
我可以让目录号和描述在DataGrid中显示得很好,但到目前为止,我已经尝试了很多针对讲师名称的方法,但都没有成功。
如何定义以嵌套元素为目标的字段?
看起来唯一的解决方法是在网格上实现get函数以进行数据检索,然后排序是一个额外的麻烦:以声明方式创建dojox.grid.DataGrid时,如何在字段属性中指定嵌套数据?
我的JSON存储也遇到了类似的问题,最终我转换为并序列化了纯DTO,而不是具有嵌套属性的实体。