java 点击表头排序_table中点击表头实现排序的功能示例介绍

本文介绍如何在BIRT报表工具中实现表头点击排序功能。通过比较前后两次点击的表头名称来确定排序方式,并将排序信息传递给后端以生成带有ORDER BY子句的SQL查询。此外,还提供了具体的代码示例。

表头名字,页面中获取上次点击的表头的名称和这次点击的表头的名称做比较,如果两者相同就按原先相反的顺序排列,否则新列升序排列,

获取排列顺序的列名及排列顺序以后,传到后台获取相应sql,添加order by 语句,完成排序功能

排序顺序值可在form中存放在隐藏域中,思路就是这样。

例如在使用birt报表工具创建报表需要点击表头的名称排序的功能时,可以再表头名称处增加一个超链接,链接内容为targeturl+表头名称 ,然后在初始化方法initialize()中判断原有的表头名称是否和传入的表头名称相同以判断升序和降序,然后获取sql,添加排序语句,完成功能。以下是我做的报表的一个实例。

datasetname = "fundcatagoryseasontemplate";

sortcol = reportcontext.gethttpservletrequest().getparameter("sortcol");//获取需要排序的列名

sortdir = reportcontext.gethttpservletrequest().getparameter("sortdir");//获取排列顺序

currenturl = reportcontext.gethttpservletrequest().getrequesturl()+"?"+reportcontext.gethttpservletrequest().getquerystring();

sortclause = "";

targeturl = "";

if(sortdir != null){

if(sortdir.indexof("asc") != -1){

sortdir = "desc";

}else{

sortdir = "asc";

}

}else{

sortdir = "asc";

}

if(sortcol != null && sortcol.length != 0){

sortclause = " order by " + sortcol + " " + sortdir;

}

reportcontext.getreportrunnable().getdesigninstance().getdataset(datasetname).querytext += sortclause; //获取并修改底层sql语句

if(currenturl.indexof("__sorting=") != -1 ){

targeturl = currenturl.substring(0,currenturl.indexof("__sorting")-1 );

}else{

targeturl = currenturl;

}

targeturl = targeturl + "&__sorting=true&sortdir="+sortdir+"&sortcol=";//修改url

希望与广大网友互动??

点此进行留言吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值