2

我在 dGrid 中设置图层字段时遇到问题。

store = new Memory({data: someData});
grid = new Grid({
    store: store
});

layout = {[label: 'ID', field: '@attributes', formatter: getId]};

grid.set('columns', layout);

someData 是具有以下结构的对象

someData = {
{@attributes: {
    id: someId
}},
{@attributes: {
    id: someId
}},
};

getId = function (value, rowId) {
return value.id;
};

好吧,它无法获得 ID 或任何东西。

我很感激任何建议。提前致谢 :)

4

2 回答 2

0

正如你们已经知道的那样,解决方案非常简单,要访问带有 @ 符号的对象,您需要括号表示法。由于dGrid支持formatter,您可以通过这样做来完成任务

layout = {[
    label: 'ID', field: '@attributes', formatter: function (value) {
        return value['@attributes'].id;}
]};

这将在中显示 ID 值@attributes

于 2013-09-11T23:34:41.183 回答
0

您显然无法使用点符号访问它。您将不得不使用方括号表示法。

someData['@attributes'].id

不清楚getId是您创建的东西还是 dgrid 的一部分,您无法更改它。如果是后者,您应该@attributes在访问它之后重命名该属性,但在将其发送到 dgrid 之前。

someData.attributes = someData['@attributes'];
delete someData['@attributes'];
// send it off to dgrid...
于 2013-08-25T20:07:46.087 回答