Использование вложенных полей из XMLStore в DataGrid в Dojo - PullRequest
0 голосов
/ 16 марта 2012

У меня есть 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 голосов
/ 12 апреля 2012

Похоже, единственный выход - внедрить get-функции в сетке для извлечения данных, а затем сортировка - дополнительная проблема: При декларативном создании dojox.grid.DataGrid - как указать вложенные данные ватрибут поля?

У меня была похожая проблема с моим JSON-хранилищем, и я закончил преобразованием и сериализацией простых DTO вместо сущностей с вложенными свойствами.

...