让Ext的Grid能加载页面的xml串

项目遇到特殊需求:页面上有一个applet,负责取一些客户机上的数据到页面。这些数据格式是xml字符串。

页面上用js读到这些xml串后,需要显示到Ext 的gird中。

问题来了:无论在Ext的例子中还是文档中,Grid的store加载的xml信息都是以xml文件存在的。页面上的只有array或者json格式数据的才被store认可,没有直接加载的xml串或者dom对象的。

后来去extjs官方论坛找到了答案,解决办法就是自己把xml串封装成dom对象,然后用Ext.data.MemoryProxy做代理

摘录如下:

 

// load XML as string
var  strXML  =   " <Tags></Tags> " ;
var  xmlObject;

   
// load XML string code for IE
if  (window.ActiveXObject)
  {
  
var  doc = new  ActiveXObject( " Microsoft.XMLDOM " );
  doc.async
= " false " ;
  doc.loadXML(strXML);
  }
// load XML string code for Mozilla, Firefox, Opera, etc.
else
  {
  
var  parser = new  DOMParser();
  
var  doc = parser.parseFromString(strXML, " text/xml " );
  }
  
xmlObject 
=  doc.documentElement;

//

    
var  dataStore  =   new  Ext.data.Store({
         
        proxy: 
new  Ext.data.MemoryProxy(xmlObject),
       
        reader: 
new  Ext.data.XmlReader({
               record: 
' Item ' ,
               id: 
' ItemID '
           }, [
               
' Cat1 ' ' Cat2 ' ' Cat3 ' ' Cat4 '
           ])
    });

// etc. etc.

转载于:https://www.cnblogs.com/PatrickChen/archive/2008/10/22/1317073.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值