【问题标题】:What is the Paging memory proxy equivalent technique in Ext JS 4.2Ext JS 4.2 中的分页内存代理等效技术是什么
【发布时间】:2013-03-13 01:12:37
【问题描述】:

在 Ext JS 的 3.x 版中,我有一个带有 json 代理的存储,用于从服务器获取完整的数据集,然后我将该存储用作存储中的读取器,并使用 PagingMemoryProxy 将原始存储作为阅读器为网格面板提供分页数据。

json 存储:-

var fleetReader = new Ext.data.JsonReader({
      root:'results',
      successProperty:'success',
      totalProperty:'total',
      idProperty:'vid'
    },
    fleetRec
);

var fleetDs = new Ext.data.Store({
  proxy: new Ext.data.ScriptTagProxy({
    url: 'request/getfleet',
    timeout: 10000
  }),
  reader:fleetReader
});

然后我创建这个商店的分页版本如下:-

fleetPagedDs = new Ext.data.Store({
    proxy: new Ext.ux.data.PagingMemoryProxy(fleetDs.reader.jsonData),
    reader: fleetDs.reader,
    remoteSort: true
});

有人能告诉我如何在 ExtJS 4 中做到这一点吗?

谢谢。

【问题讨论】:

  • 我正在寻找同样的东西。你能让这个工作吗?

标签: extjs extjs4 store


【解决方案1】:

你在找Ext.ux.data.PagingMemoryProxy吗?

来自 Sencha 文档:

分页内存代理,允许在内存数据集中使用分页网格。

【讨论】:

  • 不完全是,我想在基于 Json 的代理存储上搭载基于 PagingMemoryProxy 的存储,这样我就不需要每次都从服务器重新读取数据。
  • 您不需要第二家商店。只需使用Ext.Ajax.request 发出您的数据请求,然后使用store.loadData 手动加载您的商店。
  • 感谢您的建议。可能只是我,但是使用来自 Ext.Ajax.request 的数据调用 store.loadData 会使用整个数据集填充存储,而不是尊重启动/限制属性并且不会触发存储上的加载事件。后者不像前者那么重要。
  • 所以,如果我理解正确的话,您本质上是想向服务器发出分页请求,但将每个页面缓存在您的 PagingMemoryProxy 中,而不是每次都回调?
  • 不,我想向服务器发出一个请求以获取完整的数据集,并且基本上将其保存在客户端的内存中。然后对该内存中的客户端数据集发出分页请求。这就是上面代码中使用以前版本的 extjs 实现的效果,而且效果非常好。
猜你喜欢
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-12
  • 2015-06-15
  • 2018-04-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多