访问Ext.data.store的数据

 这两天查阅了N多资料,看了很多的论坛,打算解决如何从store里面读取数据的问题,一开始我可以从Json中返回的store里面读取数据,但是在 如何使用xml就不可以.而我要的恰恰是如何从xml里面读取数据,所以一直在寻找这样类似的方法,我们可以从它的api里面看到 store.getAt(0)这样的方法,但是如果我们直接这么使用的话,就会出现一个错误,提示getAt函数所包含的数据为空,那么我们跟踪js的时 候也无法得到具体的数据.这里是使用firefox来跟踪js的执行过程的,非常好用,建议大家也使用.对于Ext来说,可能它的文档就是一个给非常熟悉 Ext的人员使用的参考,而对于初学者而言,参考价值不大,而且有的时候还容易误导,所以我们学习Ext的时候一直处于磕磕绊绊的状态.或者这也是人家将 来要收费的原因吧,毕竟是开源的东西,而且Ext的文档提示的属性和方法是没有错误的.

今天无意中在Ext的论坛里面发现了一个和我同样问题的帖子,最后他解决了问题,我也顺便解决了.但是他没有把他的代码粘贴出来,所以我现在把我的代码粘贴出来供参考.

这是Xml文档

 

<? xml version="1.0" encoding="utf-8"  ?>
< Items >
  
< item  input ="Connect.Host"  value ="value.Connect.Host"   />
  
< item  input ="Connect.DB"  value ="value.Connect.DB"   />
  
< item  input ="Connect.User"  value ="value.Connect.User"   />
  
< item  input ="Connect.Password"  value ="value.Connect.Password"   />
</ Items >

 

下面是js代码:

 

         var  ds  =   new  Ext.data.Store( {
          proxy: 
new Ext.data.HttpProxy({url: 'test1.xml', method: 'GET'}),
          reader: 
new Ext.data.XmlReader(
             
// records will have an "Item" tag
             {record: 'item'},
             [
                
// set up the fields mapping into the xml doc to extract *attributes*
                {name: 'value', mapping: '@value'},
                
{name: 'input', mapping: '@input'}
          ])
        }
);
 ds.on(
' load ' ,AJAX_Loaded,  this true ); // 这里需要注意
 ds.load();
 
 
function  AJAX_Loaded() {
     alert(ds.getCount());
     
for (var i = 0; i < ds.getCount(); i++{
        
var rec = ds.getAt(i);
        alert(
"value = '" + rec.get("value"));
        alert(
"input = '" + rec.get("input"));
        }

    }

 

需要注意的是,我们获得数据是通过load事件来实现的,这是很多人错误的地方,也就是说,如果我们不通过事件还是无法获得数据.

ExtJS 中,`store` 是一个非常重要的概念,它是用于存储数据的容器,通常用于存储从后台获取的数据或者本地静态数据。`store` 有以下几个特点: 1. `store` 可以通过 `proxy` 对象从后台获取数据,也可以通过 `data` 对象存储本地静态数据。 2. `store` 可以通过 `reader` 对象解析后台返回的数据,以便填充到 `model` 中。 3. `store` 可以通过 `writer` 对象将 `model` 中的数据保存到后台。 4. `store` 可以触发各种事件,比如 `load`、`add`、`remove`、`update` 等,方便处理数据变化时的业务逻辑。 5. `store` 可以通过 `filter`、`sorter`、`group` 等功能对数据进行过滤、排序和分组,方便数据展示和处理。 在使用 `store` 时,通常需要配置以下几个属性: 1. `model`:指定存储在 `store` 中的数据模型。 2. `proxy`:指定从后台获取数据的方式,可以是 `ajax`、`jsonp`、`rest` 等方式。 3. `reader`:指定解析后台返回数据的方式,通常与 `model` 配合使用。 4. `writer`:指定将 `model` 中的数据保存到后台的方式。 5. `fields`:指定存储在 `store` 中的数据模型的字段。 6. `listeners`:指定 `store` 的事件监听器。 7. `autoLoad`:指定是否在创建 `store` 时自动加载数据。 8. `pageSize`:指定 `store` 分页时每页显示的记录数。 当你需要在 ExtJS 中存储数据时,`store` 就是一个非常好的选择。它提供了众多功能,方便你处理数据的各种需求。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值