在jsp页面点击某一列,对表进行正序排序,再点击实现倒序排序-与分页发生冲突
通过sql order by 排序的列 后分页显示的数据发生变化,
因为是全部数据排序后再分页,能不能只把全部数据中只排序当前页的数据,这样分页后正常。
sql要怎么写?????-------------------------------------------------
   if(request.getParameter("sort1")!=null){   
  sql.append("order by "+request.getParameter("sort1")+" "+request.getParameter("sort2"));
  }  CachedRowSet rs=DBManager.getDBManagerInstance().exeSearchSql(sql.toString());
  rs.last();   
  intRowCount=rs.getRow();   
  intPageCount=(intRowCount+intPageSize-1)/intPageSize;   
  if(intPage>intPageCount)   intPage=intPageCount;  
 <%if(intPageCount>0)   
  {rs.absolute((intPage-1)*intPageSize+1);   
  i=1;while(i<=intPageSize&&!rs.isAfterLast())   
  {%> 
  <%rs.next();i++; }} %><%   
  if(intPage!=1){%> 
  <a   href="my_account_pic.jsp?page=1">First</a> |    
  <a   href="my_account_pic.jsp?page=<%=intPage-1%>">Previous</a> | 
  <%} if(intPage!=intPageCount) {%>  
  <a   href="my_account_pic.jsp?page=<%=intPage+1%>">Next</a> |    
  <a   href="my_account_pic.jsp?page=<%=intPageCount%>">Last</a> |  
 <%}%>

解决方案 »

  1.   

    另外在写个查询方法:
    分页SQL:fy_sql
    例如:search(String fy_sql)
    {
    //执行查询SQL的拼装
    String sql = select t.* from (fy_sql) t order by ..;
    //以下执行查询语句
    }说明:因为你查询出来的数据为固定的(每页显示的数据)
    然后我们在以你查询出来的数据(也就是分页显示的数据)作为一个虚拟表,再排序查询就可以了!