1

有没有办法用 JSON 结构中的子对象填充 dojox/grid/EnhancedGrid 的列?例如,如果我有一个看起来像这样的 JSON-Row:

   {
        id: 2,
        name: "TestItem2",
        created: {
             date: "2013-03-28 11:59:40",
             timezone_type: 3,
             timezone: "Europe/Berlin"
        }
   }

我想在“创建”子对象中用“日期”填充网格的一列。我已经尝试过在网格的“结构”属性中将列的“字段”属性设置为“created.date”,但这并没有起到作用。

4

2 回答 2

2

显然,您可以在这种情况下使用格式化程序:

var structure = [[
    {'name': 'Date', 'field': '_field', formatter: myFormatter }
]];

这会将整个节点从商店传递到一个调用的函数myFormatter中,您可以从中传递相关条目,例如:

function myFormatter(node, rowIdx){
    return node.created.date;
};

另请参阅 citress 的答案:Dojo 网格嵌套 json

于 2013-03-29T23:20:20.657 回答
0

这有点邪恶和蹩脚,但也许改变对象结构会帮助你进入网格。听起来你只想要日期,所以你可以这样做:

var o = {
    id: 2,
    name: "TestItem2",
    created: {
         date: "2013-03-28 11:59:40",
         timezone_type: 3,
         timezone: "Europe/Berlin"
    }
};

o.created = o.created.date;

现在对象看起来像这样:

created: "2013-03-28 11:59:40"
id: 2
name: "TestItem2"

这是来自控制台的示例:

这是来自控制台的示例

于 2013-03-30T02:54:56.057 回答