2012-03-15 4 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' 
      ] 
     ), 

и мой пункт selectore в моих recordes

itemSelector : 'div.thumb-wrap', 

и это мои данные JSON

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

}

Как я могу выбрать мой записей в режиме просмотра данных с помощью extjs? и как я могу выбрать записи? Я использовал getSelectedRecords(), но возвратил массив отделов и записей. Тпх

+0

Я хочу, что вы используете ExtJS 4. –

ответ

1

Я уверен, что getSelectedRecords() осуждается на ExtJS 4.

Вы можете попробовать сделать что-то вроде этого:

var records = data.getRecords(); 

Это вернет Ext.data.Model[]. Более того, вы можете получить доступ ко всем свойствам, как к обычной модели:

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

Вы работаете с системой здесь с вашей структурой записи. DataView хочет, чтобы одна запись соответствовала одному выбираемому элементу. Но вы хотите иметь несколько выбираемых элементов внутри одной записи. Не работает - API не был разработан для такой вещи.

Ваши варианты кажутся:

  • Создание отдельного компонента DataView для каждого набора записей.
  • Создайте свой собственный компонент 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" 
         }, 
        ] 
    } 
    

 Смежные вопросы

  • Нет связанных вопросов^_^