2015-02-12 4 views
0

У меня возникли проблемы с подключением виджета Dojo Grid.Использование сетки Dojo с хранилищем памяти

Сама сетка добавляется декларативно:

<table data-dojo-type="dojox.grid.DataGrid" data-dojo-attach-point="relationshipsGrid"></table> 

Далее, я пытаюсь связать сетку для хранения данных Память:

var relationships = [ 
        { id: 1, market: "SE", entity: "An object" }, 
        { id: 2, market: "SE", entity: "Another object" }, 
        { id: 3, market: "SE", entity: "Yet another object" } 
       ]; 

       var store = new Memory({ data: relationships }); 

       var layout = [[ 
        { 'name': 'ID', 'field': 'id', 'width': '10px' }, 
        { 'name': 'Market', 'field': 'market', 'width': '30px' }, 
        { 'name': 'Entity', 'field': 'entity', 'width': '100px' } 
       ]]; 

       this.relationshipsGrid.structure = layout; 
       this.relationshipsGrid.store = store; 
       this.relationshipsGrid.startup(); 

Однако, все, что я в конечном итоге является пустой, 0-высота сетки. Если я явно задаю высоту, я просто получу пустую сероватую область. Существует много разметки Dojo, но без каких-либо предметов из моего магазина.

Я уверен, что я пропускаю что-то тривиальное (надеюсь), но любая помощь очень ценится! :)

ответ

0

dojox/grid не поддерживает API dojo/store напрямую, а также больше не поддерживается.

У вас есть несколько вариантов:

  • завернуть dojo/store с dojo/data/ObjectStore, чтобы преобразовать его в старой dojo/data API, что dojox/grid понятном
  • Использовать dojo/data магазин напрямую (не рекомендуется, так как он устарел в течение многих лет)
  • Используйте более современную сетку, такую ​​как dgrid (0.3.x поддерживает dojo/store; 0.4.x поддерживает dstore, целью которой является следующее поколение магазинов додзё)
+0

Благодарим за помощь! Был надеется, что в dijit или dojox будет компонент OOTB. :/Полномасштабная сетка данных на самом деле немного перехитрит в этом случае, знаете ли вы, есть ли какой-либо стандартный виджет Dojo, который поддерживает привязку данных и в основном отображает таблицу? То есть без всех колоколов и свистов сетки данных? –

+1

Я не знаю о каких-либо табличных компонентах на базе магазина в DTK с верхней части головы, но вам просто нужно сделать 'store.query(). ForEach (...)' и использовать 'dojo/dom-construct' для создания/размещения строк/ячеек таблицы в обратном вызове. RE «OOTB»: подход «кухонный раковина» dojox на протяжении многих лет не очень хорошо работает, поэтому отдельные пакеты, как правило, направлены на то, к чему мы направляемся (но они потенциально могут быть объединены вместе как одна загрузка в будущее). dgrid обычно является компонентом для проектов, над которыми я работаю сейчас. –

+0

Спасибо за вашу помощь, оцените! Я думаю, что дам dgrid попробовать, иначе я просто привяжусь к

, используя Knockout или Angular. Ура! –