Dojo数据网格:单个字段中有多个值

Dojo datagrid: Multiple values in a single field

本文关键字:字段 单个 数据 数据网 网格 Dojo      更新时间:2023-09-26

我使用的是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]作为测试,结果只显示了第一个字母。我是这类东西的新手,所以任何建议都将不胜感激。

问题是,格式化函数只接收数组项的第一个。Dojo不会按照您的意愿处理数组。在传递到dojo:之前,您需要格式化数据

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