使用XHR创建DataGrid的问题

时间:2011-09-16 20:31:00

标签: datagrid dojo xmlhttprequest

我正在尝试使用XHR构建一个DataGrid,但是网格没有正确创建,我看到很多示例并根据我在互联网上找到的内容做了我但没有成功......

我做错了什么?

我的道场:

var a = dojo.xhrGet({
                                                url : "/dojo/pix/StatusXml",
                                                handlesAs: "xml",
                                                preventCache: true,
                                                headers: { "Content-Type": "application/x-www-form-urlencoded"},
                                // mimetype: "application/xml"
                                        });


                a.addCallback(function(myXml) {
                        var grid = dijit.byId("grid");
                // var gridStore = new dojo.data.ItemFileReadStore({data:{items: myXml} });
                        var gridStore = new dojo.data.ItemFileWriteStore({data:{items: myXml} });
                        alert("myxml: \n"+ myXml +" \n gridStore: \n"+gridStore);

          grid.setStore(gridStore);
                        grid.refresh();

                });

Gid结果显示的消息是“抱歉,发生了错误” enter link description here

2 个答案:

答案 0 :(得分:0)

如果使用xml作为handleAs函数的dojo.xhrGet值,响应数据将转换为XML DOM对象。但dojo.data.ItemFileReadStore期望获得JSON对象作为数据格式。

因此,您可以使用dojox.data.XmlStore作为网格存储,也可以手动将XML DOM对象转换为JSON数据。实际上,这里不需要使用XHR,因为dojo.data.ItemFileReadStoredojox.data.XmlStore可以使用URL作为数据源,他们将处理数据检索。

答案 1 :(得分:0)

dojox.data.XmlStore不能通过XMLRequest从servlet中检索数据...只来自文件中的数据