table中點擊表頭實現(xiàn)排序的功能示例介紹
<a href="javascript:setOrder();">表頭名字</a>,頁面中獲取上次點擊的表頭的名稱和這次點擊的表頭的名稱做比較,如果兩者相同就按原先相反的順序排列,否則新列升序排列,
獲取排列順序的列名及排列順序以后,傳到后臺獲取相應sql,添加order by 語句,完成排序功能
排序順序值可在form中存放在隱藏域中,思路就是這樣。
例如在使用Birt報表工具創(chuàng)建報表需要點擊表頭的名稱排序的功能時,可以再表頭名稱處增加一個超鏈接,鏈接內容為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
相關文章
jsp的注釋可能會影響頁面加載速度讓代碼扔繼續(xù)執(zhí)行
注釋里面的java代碼還是會得到執(zhí)行,可以再查看頁面源代碼上看到執(zhí)行完成的內容2014-10-10
Jsp中的table多表頭導出excel文件具體實現(xiàn)
這篇文章主要介紹了Jsp中的table多表頭導出excel文件具體實現(xiàn),有需要的朋友可以參考一下2013-12-12
JSP中c:foreach遍歷和s:iterator遍歷異同實例分析
這篇文章主要介紹了JSP中c:foreach遍歷和s:iterator遍歷異同,以兩個完整實例形式對比分析了c:foreach遍歷和s:iterator遍歷的具體用法,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09

