2013-07-26 6 views
2

J'utilise Dojo 1.7 et j'ai un champ dans une grille de données qui ne peut avoir aucune valeur, une valeur ou plusieurs valeurs. Je suis en train d'utiliser les données formatées ainsi:DataGrid Dojo: plusieurs valeurs dans un seul champ

//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>'; 
}; 
}; 

et c'est la mise en page:

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

Le problème est que seul le premier nom de « Steve » montre vers le haut. J'ai essayé d'utiliser la valeur [0] comme test et cela n'a fait qu'apparaître la première lettre. Je suis nouveau dans ce genre de choses, donc tout conseil serait apprécié.

Répondre

0

Le problème est que la fonction de formatage ne reçoit qu'un premier élément du tableau. Dojo ne gère pas les tableaux comme vous le souhaitez. Vous devez formater les données avant de passer au dojo:

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