jsp分页显示的问题:如果显示的表没有ID顺序号,怎么做?
我看jsp的书是机算出总条数,定义每页的行数,然后在sql里面+id>bottom+id<top做的
如果显示的表没有ID顺序号,咋做啊?
问题点数:40、回复次数:10Top
1 楼blackdreamzg(基本靠手)回复于 2005-08-02 08:56:04 得分 0
跟ID有啥关系。都是结果集。Top
2 楼YuLimin(阿敏总司令:简单就是美—钻石闪闪您快结贴!)回复于 2005-08-02 08:57:34 得分 10
http://iamin.blogdriver.com/iamin/626053.html
使用Struts的logic标签,遍历List时使用indeId来自动输出序号并加一- -
http://community.csdn.net/Expert/TopicView.asp?id=3888517
例子如下:
<table>
<tr>
<td>序号</td>
<td>姓名</td>
...
</tr>
<logic:present name="targetbean">
<logic:iterate name='helperbean' id='helperbean' type='net.echochina.HelperBean' scope='request' indexId="index">
<tr>
<td><%= index.intValue() + 1 %></td>
<td><bean:write name='helperbean' property='name' /></td>
.....
</tr>
</logic:iterate>
</logic:present>
</table>Top
3 楼masse(当午 http://blog.sina.com.cn/xukf)回复于 2005-08-02 09:00:04 得分 0
1.给表强行加一个ID列,然后取
2.表如果有primary key(或者别的distinct values的列),就按照这个列排序先,
3.取一个表(SQLSERVER)中11-20条记录的SQL语句如下
SELECT TOP 10 x.name, x.population FROM (
SELECT TOP 20 name, population FROM cia
ORDER BY population DESC) x
ORDER BY x.population ASC
上面是sqlserver的,mysql和oracle类似,
但是有的数据库不支持这样的select,就只有用游标了Top
4 楼su27007(人外有人,天外有天)回复于 2005-08-02 09:32:40 得分 0
学习中.Top
5 楼vincege(热得快)回复于 2005-08-02 09:41:14 得分 20
打开ResultSet rs后。
rs.last();
int rowcount= rs.getRow();能取到行号;
rs.absolute(rowindex)能定位到具体的行
要做分页无需数据库支持
Top
6 楼geelpheels(geelpheels)回复于 2005-08-02 15:53:17 得分 10
根据单个记录构造一个类,比如:MyModel
class MyModel
{
int item1;
String item2;
Date item3;
...
MyModel(int item1,String item2,Date item3)
{
this.item1=item1;
this.item2=item2;
this.item3=item3;
...
}
...
}
再构造操作类:
class MyModelAdmin
{
Collection getRecordOfPage(String page/*第几页*/, int intPageSize/*每页记录数*/)
{
ResultSet rs=stmt.executeQuery("select * from t_mymodel order by mymodel_id");
ArrayList al=null;
while(rs.next())
{
int item1=rs.getInt(1);
String item2=rs.getString(2);
` Date item3=rs.getDate(3);
...
al.add(new MyModel(item1,item2,item3...));
}
int i,j;
ArrayList c=new ArrayList();
int t=Integer.parseInt(page);
j=0;
for (i=0;i<((t-1)*intPageSize);i++)
{
j++;
}
if(al.size()<(j+1))
return c;
while ((j<t*intPageSize)&&(j<al.size()))
{
c.add(al.get(j));
j++;
}
return (Collection)c;
}
}Top
7 楼geelpheels(geelpheels)回复于 2005-08-02 15:58:25 得分 0
这里的mymodel_id不必是连续的自然数,只要是自然数就可。或者你干脆可以把“order by ...”去掉。Top
8 楼spiritsl(梦雨心蓝)回复于 2005-08-02 16:58:12 得分 0
取row_num列Top
9 楼KavinWen(凯文)回复于 2005-08-02 17:02:15 得分 0
可以用hibernate做分页
String queryString = "select c from * as c";
Query query = session.createQuery(queryString);
query.setFirstResult(firstRec); //fistRec 表中的记录序号
query.setMaxResults(count); //count 当次取记录条数
Iterator it= query.iterate();
return it;Top
10 楼ccbcgxt()回复于 2005-08-02 17:21:05 得分 0
打开ResultSet rs后。
rs.last();
int rowcount= rs.getRow();能取到行号;
rs.absolute(rowindex)能定位到具体的行
要做分页无需数据库支持
这种方法都几好啊,我先用最原始做先Top




