我正在使用Dojo 1.7,我在数据网格中有一个字段,它没有值,一个值或多个值。我正在尝试使用以这种方式格式化的数据:
//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 :(得分:0)
问题是,格式化函数只接收第一个数组项。 Dojo不会按您的意愿处理数组。您需要在传递给dojo之前格式化数据:
for (var i=0;i<items.length;i++) {
if (items[i].personNames instanceof Array)
items[i].personNames = items[i].personNames.join(', ')
}