Использование вложенных полей из XMLStore в DataGrid в Dojo
У меня есть 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 ответ
Похоже, единственный выход состоит в том, чтобы реализовать в сетке функции get для извлечения данных, а затем сортировка является дополнительной дополнительной проблемой: при декларативном создании dojox.grid.DataGrid - как указать вложенные данные в атрибуте поля?
У меня была похожая проблема с моим JSON-хранилищем, и я закончил преобразование и сериализацию простых DTO вместо сущностей с вложенными свойствами.