2013-07-26 4 views
2

Dojo 1.7을 사용하고 있으며 값, 하나의 값 또는 다중 값을 가질 수있는 DataGrid의 필드가 있습니다.Dojo DataGrid : 단일 필드의 다중 값

//data 
var store2 = new dojo.data.ItemFileReadStore({ 
    data: { 
     identifier: "id", 
     items: [ 
      {id: 1, 'personNames': ['Steve', 'Roy', 'Gary']}, 
      {id: 2, 'personNames': ''} //blank, no person names 

     ] 
    } 
}); 

//formater 
function formatPersonNames(value){ 
if (value == '') { 
    return '<p>Nobody here</p>'; 
} else { 
    return value + '<p style="margin-top:10px;">Check out the names above!</p>'; 
}; 
}; 

를이 레이아웃입니다 : :이 방법은 형식의 데이터를 사용하는 것을 시도하고있다

// layout 
var layout2 = [ 
    {name: 'Display Order', field: 'id', noresize:true, 'width': '50px'}, 
    {name: 'Person Names', field: 'personNames', formatter: formatPersonNames, noresize:true} 
]; 

문제는 첫 번째 이름 '스티브'게재된다는 점이다. 나는 값 [0]을 테스트로 사용하려고 시도했으나 첫 번째 문자 만 표시했다. 나는 이런 종류의 물건에 익숙하지 않기 때문에 어떤 충고도 부탁드립니다.

답변

0

형식 지정 기능은 첫 번째 배열 항목 만받습니다. Dojo는 원하는대로 배열을 처리하지 않습니다. 도장에 전달하기 전에 데이터 서식을 지정해야합니다.

for (var i=0;i<items.length;i++) { 
    if (items[i].personNames instanceof Array) 
    items[i].personNames = items[i].personNames.join(', ') 
} 
관련 문제