2012-03-15 55 views
0

我有以下tpl數據視圖。extjs嵌套數據視圖選擇一個節點

<tpl for="."> 
    <tpl for="departments"> 
       {title} 
    </tpl> 
    <tpl for="records"> 
     <div class="thumb-wrap"> 
      {name} 
     </div> 
    </tpl> 
</tpl> 

和我的JSON redear這樣

 reader : new Ext.data.JsonReader(
     { 
      root : 'data', 
     }, 
     [ 
      'departments' , 
      'records' 
      ] 
     ), 
在我recordes

itemSelector : 'div.thumb-wrap', 

和我的項目selectore,這是我的JSON數據

{ 
"success": true, 
"data": [ 
    { 
     "departments": [ 
      { 
       "title": "name" 
      } 
     ], 
     "records": [ 
      { 
       "name": "name" 
      }, 
      { 
       "name": "name" 
      } 
     ] 
    }, 
    { 
     "departments": [ 
      { 
       "title": "name" 
      } 
     ], 
     "records": [ 
      { 
       "name": "name" 
      } 
     ] 
    } 
] 

}

我如何選擇我的貓記錄在數據視圖中用extjs? 和我如何得到選擇記錄? 我使用getSelectedRecords(),但它返回部門和記錄數組。 TNX

+0

我會假設你正在使用的ExtJS 4。 – 2012-03-15 12:11:09

回答

1

我敢肯定,getSelectedRecords()上ExtJS的4

不贊成你可以嘗試做這樣的事情:

var records = data.getRecords(); 

這將返回一個Ext.data.Model[]。比如,你可以像普通模型一樣訪問所有的屬性:

record.get('departments'); 
record.get('records'); 
0

你正在使用你的記錄結構來對付系統。 DataView需要一條記錄與一個可選項目相對應。但是你希望在一條記錄中有多個可選項目。不起作用 - API不是爲這樣的事情設計的。

您的選項似乎是:

  • 每個組記錄創建一個單獨的數據視圖組件。
  • 創建可以處理分組的自己的DataView組件。
  • 在GroupingView中使用網格。您必須將您的記錄結構更改爲如下所示,但這是最簡單的方式。儘管...你必須犧牲DataView提供的相當多的靈活性。

    "data": [ 
        { 
         { 
          "department": "Department 1" 
          "name": "record 1" 
         }, 
         { 
          "department": "Department 1" 
          "name": "record 2" 
         }, 
         { 
          "department": "Department 2" 
          "name": "record 1" 
         }, 
         { 
          "department": "Department 2" 
          "name": "record 2" 
         }, 
        ] 
    }