0

DataGridのソースに使用しているXMLStoreがあります。データグリッドで使用するために最上位のフィールドを引き出すことはできますが、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に正しく表示することはできますが、これまでのところ、インストラクター名をターゲットにするためにさまざまなことを試みましたが、成功しませんでした。

ネストされた要素を対象とするフィールドをどのように定義できますか?

4

1 に答える 1

0

唯一の方法は、データ取得のためにグリッドに get 関数を実装することであり、並べ替えはさらに面倒です: dojox.grid.DataGrid を宣言的に作成する場合 - フィールド属性でネストされたデータを指定する方法は?

JSON ストアで同様の問題が発生し、ネストされたプロパティを持つエンティティではなく、プレーンな DTO に変換してシリアル化することになりました。

于 2012-04-11T20:08:46.400 に答える