2013-07-26 57 views
2

我正在使用Dojo 1.7,並且我在數據網格中有一個字段,它可以沒有值,一個值或多個值。我試圖使用格式化這樣的數據: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} 
]; 

的問題是,只有第一個名字「史蒂夫」被顯示出來。我嘗試使用value [0]作爲測試,並且只顯示第一個字母。我是新來的這種東西,所以任何意見將不勝感激。

回答

0

問題是,格式化函數只接收第一個數組項。 Dojo不會像你想的那樣處理數組。您需要在傳遞到道場之前格式化數據:

for (var i=0;i<items.length;i++) { 
    if (items[i].personNames instanceof Array) 
    items[i].personNames = items[i].personNames.join(', ') 
} 
相關問題