Dojo + DataGrid + JsonRest + 自定义 json

Posted

技术标签:

【中文标题】Dojo + DataGrid + JsonRest + 自定义 json【英文标题】:Dojo + DataGrid + JsonRest + custom json 【发布时间】:2013-09-13 10:25:40 【问题描述】:

我有以下问题。我的 REST Web 服务返回这样的 json:

"response":"headers":"","items":"item":["@id":"1","email":"admin@admin","firstname": "admin","lastname":"admin","login":"admin","@id":"2","email":"Bennett@Tawney.com","firstname":"Bennett" ,"姓氏":"Tawney","登录名":"bennettabcd"...

如何强制 DataGrid 显示上面 json 中的项目?我无法更改 REST Web 服务,它必须以这种格式返回 jsons。 Http请求正常,服务器返回我的json,但是datagrid没有填写。你有什么想法吗?

我的“道场”代码如下:

var store = new Cache(new JsonRest( 目标:settings.vars.API_URL + "/frapi/users/load", 开始:页*行, 计数:10, 种类: [ 属性:“id”,降序:true ], 标题: “内容类型”:“应用程序/json” ), 记忆()); 网格 = 新数据网格( 存储:新对象存储(对象存储:存储), 查询选项:, 结构体:[ 默认单元格: 宽度:“自动” , 细胞: [ 名称:“Id”,字段:“id”,宽度:“50px”, 名称:“登录”,字段:“登录”, 名称:“电子邮件”,字段:“电子邮件”,宽度:“200px”, 名称:“名字”,字段:“名字”, 名称:“姓氏”,字段:“姓氏” ] ] , “网格”); 网格.启动();

提前致谢

【问题讨论】:

【参考方案1】:

好的,我找到了解决方案。请看下面的代码:

var extractItemsFromResponse = function(deferred) return deferred.then(function(response) 返回 response.response.items.item; ); ; aspect.after(store, "query", extractItemsFromResponse);

希望对你有帮助。

【讨论】:

以上是关于Dojo + DataGrid + JsonRest + 自定义 json的主要内容,如果未能解决你的问题,请参考以下文章

DOJO:DataGrid 增量加载不起作用

Dojo + DataGrid + JsonRest + 自定义 json

JavaScript Dojo DataGrid onStyleRow悬停

将新项目添加到商店后 Dojo Datagrid 排序

如何通过 JS 访问在 HTML 中声明的 Dojo DataGrid?

Dojo 中的 DataGrid,带有来自 servlet 的 json 数据