Ext JS 4.2 中的分页内存代理等效技术是啥

Posted

技术标签:

【中文标题】Ext JS 4.2 中的分页内存代理等效技术是啥【英文标题】: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 中做到这一点吗?

谢谢。

【问题讨论】:

我正在寻找同样的东西。你能让这个工作吗? 【参考方案1】:

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

来自 Sencha 文档:

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

【讨论】:

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

以上是关于Ext JS 4.2 中的分页内存代理等效技术是啥的主要内容,如果未能解决你的问题,请参考以下文章

页面设置中“分页符”和“下一页”的区别是啥?

EXTJS 4.2 网格问题的分页

Ext js动态更新分页工具栏的总数

怎么设置uiscrollview的分页大小

PHP 带省略号的分页程序,原理是啥? 分页程序我已经写出来了,但是那个省略号 算法 和原理没弄懂

Ext Js 分页不适用于 ExtDirect 网格面板