+ -
当前位置:首页 → 问答吧 → EXT 分页 全部数据进行排序 问题

EXT 分页 全部数据进行排序 问题

时间:2009-09-23

来源:互联网

例如 一共50条数据,我后台是 每次检索10 条数据显示, 那前台所点的排序也肯定是 对这10数据进行排序, 而不是对50条数据进行, 要怎么才可以实现对全部数据的排序?
 
要是 HTML的话 点排序 我会直接 触发 后台 重新检索. 那EXT该怎么做?

 

作者: gbx007   发布时间: 2009-09-23

试试看捕捉grid panel的 sortchange 事件 , 根据 参数 sortInfo对象,取得字段和方向。
然后 更新 grid的store的httpProxy 的 baseParam (或表单) 读取数据 更新 grid

作者: hookee   发布时间: 2009-09-23

该回复于2009-09-25 10:54:00被版主删除

  • 对我有用[0]
  • 丢个板砖[0]
  • 引用
  • 举报
  • 管理
  • TOP
#3楼 得分:0回复于:2009-09-24 09:31:32
引用楼主 gbx007 的回复:
例如 一共50条数据,我后台是 每次检索10 条数据显示, 那前台所点的排序也肯定是 对这10数据进行排序, 而不是对50条数据进行, 要怎么才可以实现对全部数据的排序?

要是 HTML的话 点排序 我会直接 触发 后台 重新检索.  那EXT该怎么做?



这样是可以实现 通过 改变SQL, 但要是这样的话,ext的自带的排序功能 就没派上用处了.  

我想知道 你们在项目中 是 怎么实现的?

作者: qq525093551   发布时间: 2009-09-24

你看一下Ext.data.Store的api,有一个属性叫做remoteSort把它设置为true,grid调用store的sort的时候,store就不会本地排序了,而是使用自己的load方法,把sort和direction两个参数加入到请求参数中。

作者: gbx007   发布时间: 2009-09-24

在后台排序代码如下:
点击某列头部,把该列参数传到后台
grid.on('headerclick',function(theGrid, rowIndex, columnIndex, e){ 
if(rowIndex==7){ //rowIndex 第几列
var datastore = theGrid.getStore();

datastore.on('beforeload',function(){
Ext.apply(
this.baseParams,{
sortby:'priviledge',
direction:'DESC'
});
});
 
datastore.proxy.conn.url =requestURL;//
datastore.load();

}

});

作者: AWHeaVen   发布时间: 2009-09-30