日期:2014-05-18  浏览次数:20819 次

在jsp页面点击某一列,对表进行正序排序,再点击实现倒序排序-与分页不能共同实现
在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 > ¦  
  <%}% >

------解决方案--------------------
点击排序的时候重新调用方法查询:
public List search(String fy_sql)
{
String sql = select t.* from ( fy_sql ) t order by name;
//调用查询方法
...
return list;//返回结果集(这里自己设定^_^)
}

以查询出来的数据再次作为一个表进行排序查询!
------解决方案--------------------
两个按钮,加两个Action方法 ,一个方法查询数据库 ,查询加条件order by XXX DESC,另一个ORDER BY XXX ASC
------解决方案--------------------
select * from table where id >=3 and id <=7 order by name asc 
select * from table where id >=3 and id <=7 order by name desc
就是这两句的切换就是了,定义个变量,等于0时,点的时候判断变量,等于0执行第一句,此时给一个变量设置成1,等于1执行第二句,变量变为0
------解决方案--------------------
建议你用脚本实现啊
------解决方案--------------------
个人觉得对页面上的表格数据进行某列的排序最好在客户端通过js实现,这样就能分页分离开来。


因为客户端通过js进行排序只是针对当前页面显示的数据进行排序,并不会涉及到服务端的数据,因此也就不会打乱服务端所有数据库的顺序,也就不会产生和分页的矛盾。

否则和分页的矛盾是不好处理的
------解决方案--------------------
mark
------解决方案--------------------
用JS实现啦,不需要再去查数据啊.你只排序当前显示的啊,用JS把Table里的行换一个,这想这个实现应该不难吧.定位到<td>然后根据<TD>里的值进行换行.建议百度一下"table 行排序",然后排序的算法就要看你自己的能力了