在Dojo中的DataGrid中使用XMLStore中的嵌套字段

时间:2012-03-16 18:11:21

标签: dojo dojox.grid.datagrid xmlstore

我有一个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中获得目录编号和描述,但是到目前为止,我已经尝试了很多目标来指导教师名称。

如何定义以嵌套元素为目标的字段?

1 个答案:

答案 0 :(得分:0)

看起来唯一的方法是在网格上实现get-functions以进行数据检索,然后排序是额外增加的痛苦: When declaratively creating a dojox.grid.DataGrid - how to specify nested data in the field attribute?

我的JSON-store遇到了类似的问题,我最终转换为序列化普通DTO而不是具有嵌套属性的实体。