2012-05-07 3 views
0

dojo 1.7.2에서 배열 값을 포함하는 데이터 저장소를 만들면 dojox.grid.DataGrid는 각 항목을 코마로 분리하여 문제없이 표시합니다.dojo 1.6 DataGrid에서 목록을 표시 할 수 없습니까?

그러나 dojo 1.6에서는 배열의 첫 번째 요소 만 사용합니다. 버전 1.6을 사용해야하는 프로젝트가 있습니다. 해당 버전에서이 문제를 해결할 수있는 방법이 있습니까?

문제를 설명하기 위해 여기에 2 예는 다음과 같습니다 도장 1.6에

감사 : 도장 1.7에 http://jsfiddle.net/psoares/HbFNY/

  • !

  • 답변

    1

    분명히 문제는 그리드가 아닌 ItemFileReadStore에서 비롯됩니다. 대신 ObjectStore 및 MemoryStore를 사용하기 위해 1.6 용 내 코드가 수정되어 작동했습니다.

    이이 결함이며, 아직이 http://jsfiddle.net/psoares/HbFNY/16/

    0

    를 참조하지 .. 당신의 JSON의 구조는이 childAttrs 중 하나입니다하지 않는 한 값이 배열로 사용할 수 없습니다 꽤 권리로이다. [1,2,3] .toString()의 속성 때문에 배열로 값을 설정하려는 시도가 유효한 것으로 간주되는 이유입니다.

    ItemFileReadStore에서 Get/설정 등의 항목에서 작동합니다

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

    게터는 설정에서 당신을 금지 무엇을 당신의 JSON 구조에서

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

    을 말한다 같은 값 수행원?

    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의 데이터 저장소를 사용하여 수