shuchen34 2009-05-08 17:05
浏览 312
已采纳

ext 分页排序

我在使用ext作为数据呈现时,遇到一个列排序问题:在没有使用分页的时候,页面显示出来对每列多可以进行排序,但使用分页后,页面显示出来对每一列多无法进行排序,事件无法激发。请指教下,谢谢
[b]问题补充:[/b]
每列的sortable多是true
[b]问题补充:[/b]
這是store

[code="java"]ds = new Ext.data.Store({
proxy: new Ext.data.DWRProxy(pageDwr.queryPage_smt_203, true),
reader: new Ext.data.ListRangeReader({id:"sysId",totalProperty:'totalSize'},recordType),
remoteSort: true
});

        ds.on("load", function () {
        }); 

}[/code]

這是ColumnModel:
[code="java"]columnModel= new Ext.grid.ColumnModel(
[
{
header: '',
width: 35,
renderer:renderDescn

                },
                {
                    header: '工號',
                    width: 110,
                    sortable: true,
                    dataIndex: 'moNumber'
                },{
                    header: '狀態',
                    width: 70,
                    sortable: true,
                    dataIndex: 'moStatus',
                    renderer:renderStatus

                },
                {
                    header: '增加數量',
                    width: 70,
                    sortable: true,
                    dataIndex: 'addQty'
                },
                {
                    header: '減少數量',
                    width: 70,
                    sortable: true,
                    dataIndex: 'subtractQty'
                },
                {
                    header: '修改人員',
                    width: 80,
                    sortable: true,
                    dataIndex: 'modifyOp'
                }   ,
                {
                    header: '修改日期',
                    width: 110,
                    sortable: true,
                    dataIndex: 'modifyDt',
                    renderer:Ext.util.Format.dateRenderer('Y¦~m¤ëd¤é')
                }                                           
            ]);
            }[/code]

這是grid:
[code="java"]
grid = new Ext.grid.GridPanel({
contentEl: 'mygrid',
ds: ds,
cm: getColumnModel(),
autoWidth: false,
bbar: bbar,
width: 550,
height: 260

});
grid.render('mygrid');

}

[/code]
分頁代碼:
[code="java"]grid = new Ext.grid.GridPanel({
contentEl: 'mygrid',
ds: ds,
cm: getColumnModel(),
autoWidth: false,
bbar: bbar,
width: 550,
height: 260

});
grid.render('mygrid');

}[/code]

這是頁面初始化:
Ext.onReady(function(){
initDataSource();

        ds.on('beforeload', function() {
        ds.baseParams = {
        number:mo_num,
        status:mo_status,
        add:'',
        subtract:''
      };
    });
        ds.load({params:{start:0, limit:9}});   
        }       
        buildGrid();

});

在java代碼裡面參數是這樣的:
[code="java"]public ListRange queryPage_smt_203(Map contriction){
System.out.println("----------PageDwr starting-------------");
ListRange list=new ListRange();
int start = Integer.parseInt(contriction.get("start").toString());
int limit = Integer.parseInt(contriction.get("limit").toString());
String number=contriction.get("number").toString();
String status=contriction.get("status").toString();
String add=contriction.get("add").toString();
String subtract=contriction.get("subtract").toString();
System.out.println("[start]:"+start+"[limit]:"+limit);
String countHql="select count(*) from AccountsLog where 1=1 ";
String fromHql="from AccountsLog where 1=1 ";
StringBuffer whereHql=new StringBuffer();
if(!StringTool.filterNull(number).equals(""))
whereHql.append(" and moNumber='"+number+"'");
if(!StringTool.filterNull(status).equals("")){
String stus[]=StringTool.filterNull(status).trim().split("@");
whereHql.append(" and moStatus='"+stus[1]+"'");
}
if(!StringTool.filterNull(add).equals(""))
whereHql.append(" and addQty='"+add+"'");
if(!StringTool.filterNull(subtract).equals(""))
whereHql.append(" and subtractQty='"+subtract+"'");
System.out.println(fromHql+whereHql.toString());

   System.out.println("[number]:"+number+"[status]:"+status+"[add]:"+add+"[subtract]:"+subtract);
 String HQL=fromHql+whereHql.toString()+" order by modifyDt desc";
 System.out.println(HQL);
 countHql=countHql+whereHql.toString();
  int tCount =(Integer)hibtool.selectData(countHql).get(0);
   Query query=hibtool.getSession().createQuery(HQL);
     query.setFirstResult(start);
     query.setMaxResults(limit);
     ArrayList listt=(ArrayList)query.list();
     System.out.println("[list]:"+listt);
     data=new Object[listt.size()];
     for(int i=0;i<listt.size();i++){
         data[i]=(Object)listt.get(i);
     }

     list.setData(data);
     list.setTotalSize(tCount);
  return list;
}

[/code]
基本上這樣寫的
沒有使用分頁,對於每一列多是可以正常排序的
而使用的分頁后,每列的排序功能就失效
圖如下:

[img]/upload/attachment/106294/6d0cd3be-6e26-3387-93ab-b4546df80334.jpg[/img]

  • 写回答

4条回答

  • zhoujuan520 2009-05-23 10:42
    关注

    [code="js"] remoteSort: true [/code]
    问题就在这里,你去掉看看

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题
  • ¥15 Python时间序列如何拟合疏系数模型