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条)

报告相同问题?

悬赏问题

  • ¥50 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?