论坛首页 AJAX版 EXT

Ext.data.Store是怎么处理数据流形式的XML文件的呢?

浏览 2051 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2007-11-23
各位DX,我知道EXT可以处理文档形式的XML数据,比如说:
var ds = new Ext.data.Store({
        // load using HTTP
        proxy: new Ext.data.HttpProxy({url: 'plants.xml'}),

        // the return will be XML, so lets set up a reader
        reader: new Ext.data.XmlReader({
               // records will have a "plant" tag
               record: 'module'
           }, Plant)
    });
这里处理的就是一个文件名为plants.xml的XML数据,

如果我要处理的数据是流形式XML数据,也就是说,我的XML数据是后台程序生成的,而不是一个文件,该怎么处理呢?
   
最后更新时间:2007-11-25
一样的吧,不过记得服务器端加一个 text/xml 的header
   
0 请登录后投票
最后更新时间:2007-12-13
我也有这样的问题。

楼主解决了吗?


var proxy=new Ext.data.HttpProxy({url:'XmlReaderController.do?method=post'});

var reader = new Ext.data.XmlReader({
       record: "item",
       id: "orgcode"
       }, [
       {name: 'name',mapping:'orgname'},
       {name: 'pro'},
       {name: 'sal'},
       {name: 'sto'}
    ]);
   

   var store=new Ext.data.Store({
   proxy: proxy,
  reader: reader
});
 
store.load();

grid 取不到数据。
   
0 请登录后投票
最后更新时间:2007-12-13
lichielee 写道
各位DX,我知道EXT可以处理文档形式的XML数据,比如说:
var ds = new Ext.data.Store({
        // load using HTTP
        proxy: new Ext.data.HttpProxy({url: 'plants.xml'}),

        // the return will be XML, so lets set up a reader
        reader: new Ext.data.XmlReader({
               // records will have a "plant" tag
               record: 'module'
           }, Plant)
    });
这里处理的就是一个文件名为plants.xml的XML数据,

如果我要处理的数据是流形式XML数据,也就是说,我的XML数据是后台程序生成的,而不是一个文件,该怎么处理呢?


有区别么?只要你的HttpProxy的url返回的是xml格式就可以,也就是说你在后台直接向response里写xml格式内容就可以了
   
0 请登录后投票
最后更新时间:2007-12-14
第一response.setContentType("text/xml; charset=GBK");
第二服务器端输出的xml里的编码要与上面的一致即可,当然不一定要GBK.
第三ext用xmlreader.
如果能做到,应该是不再会有问题了的.
   
0 请登录后投票
最后更新时间:2007-12-20
请教各位:
var ds = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({url:'result.jsp?method=post'}),
reader: new Ext.data.XmlReader({
record:'student',
totalRecords: '@total'
},[
{name: 'name', mapping:'name'},
{name: 'birth'},
{name: 'bk'},
{name: 'room'}])
});
我是在result.jsp中提交表单,在数据库中查询出xml的流,然后再跳转回这个result.jsp页面显示。总是显示不出数据。
是不是{url:'result.jsp?method=post'}写的不对?
查询出的xml结果集怎么用ext显示呢?
还有response.setContentType("text/xml; charset=GBK")写在什么地方?
能否把代码贴出来
不胜感激~~
   
0 请登录后投票
最后更新时间:2007-12-21
你再跳回result.jsp,数据当然就丢失了,用ext就不需要跳回了
   
0 请登录后投票
最后更新时间:2007-12-21
谢谢回复,可我还是不知道具体怎么写,能给个代码吗,谢谢
   
0 请登录后投票
最后更新时间:2008-02-29
java:

StringBuffer sb = new StringBuffer();
sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
sb.append("<infos>");
sb.append("<totalrow>"+list.size()+"</totalrow>");
for(int i = 0; i < list1.size(); i++)
{
IncomeExpesesVO vo = (IncomeExpesesVO)list1.get(i);
sb.append("<info>");
sb.append("<id>"+vo.getId()+"</id>");
sb.append("<username>"+vo.getUsername()+"</username>");
sb.append("<time>"+vo.getTime()+"</time>");
sb.append("<typekind>"+vo.getTypename()+"</typekind>");
sb.append("<des>"+vo.getDes()+"</des>");
sb.append("<count>"+vo.getCount()+"</count>");
sb.append("<total>"+totalCount+"</total>");
sb.append("</info>");
}
sb.append("</infos>");

httpServletResponse.setContentType("text/xml; charset=UTF-8");
httpServletResponse.setHeader("Cache-Control", "no-cache");

PrintWriter out = httpServletResponse.getWriter();
out.write(sb.toString());
out.close();



页面:

var Infos = Ext.data.Record.create([
        {name: 'username', type: 'string'},
        {name: 'time', type: 'string'},
        {name: 'typekind', type: 'string'},
        {name: 'des',type: 'string'},
        {name: 'count',type: 'float'},
        {name: 'total',type: 'float'}
    ]);
    store = new Ext.data.Store({
        url: 'expensesmanage.do',
        method: 'GET',
reader: new Ext.data.XmlReader({
   totalRecords: 'totalrow',
   record: 'info',
   id:'id'
},Infos),
       sortInfo:{field:'time', direction:'desc'}
   });
   
0 请登录后投票
论坛首页 AJAX版 EXT

跳转论坛:
JavaEye推荐