2012-05-07 4 views
0

В dojo 1.7.2, если я создаю хранилище данных, содержащее значения массива, dojox.grid.DataGrid отображает их без проблем, разделяя каждый элемент с помощью комы.dojo 1.6 DataGrid не может отображать списки?

Однако в dojo 1.6 требуется только первый элемент моего массива. У меня есть проект, где я должен использовать версию 1.6. Есть ли способ обхода этого в этой версии?

Чтобы проиллюстрировать эту проблему, вот 2 примера:

Спасибо!

ответ

1

Видимо проблема возникает из ItemFileReadStore, а не из сетки. Я изменил свой код для 1.6, чтобы вместо этого использовать ObjectStore и MemoryStore, и это сработало.

См http://jsfiddle.net/psoares/HbFNY/16/

0

это недостаток, и все же это не .. Конструкция вашего JSON не совсем верно, как любое значение, не допускается в виде массива, если это не один из childAttrs. Из-за природы [1,2,3] .toString() поэтому ваши попытки установить значения в виде массивов считаются действительными.

ГЭТ/комплект в ItemFileReadStore работает с его элементов, как, например:

store._arrayOfAllItems = { 
value1 : { values : [ 'realvalue' ] }, 
value2 : { values : [ 'realvalue' ] } 
}; 

-газопоглотитель затем говорит

store.get = function(itemById, val) { return itemById[val][0]; } 
    // why only the first arrayslot is pulled from store---/^ 

В вашей JSON конструкции, то, что запрещает вам от настроек значения как такового следующий?

var data = { 
     id: 'id', 
     label: 'id', 
     items: [ 
      { 
      id: "value1", 
      values: "a,b,c" // permit-able string value 
     }, 
     { 
      id: "value2", 
      values: "foo"} 
     ] 
    }; 

Если вы хотите несколько значений по тем же ключом одного ID, то вы должны предоставить данные, как дети, и обращаться с ними как таковой, как;

data: { 
     id: 'id', 
     label: 'id', 
     childrenAttrs: [ 'items', 'children'], // << default behavior 
     items: [ { 
      id: "value1", 
      children: [ 
       { id: "value1_1", values: 'a' }, 
       { id: "value1_2", values: 'b' }, 
       { id: "value1_3", values: 'c' } 
      ] 
     }, { 
      id: "value2", 
      values: "foo" 
     } ] 
    } 

Однако только dojox.grid.TreeGrid позволит использовать несколько LvL датасторы

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

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