+ -
当前位置:首页 → 问答吧 → 写一个关于分页技术的问题,求思路求指点

写一个关于分页技术的问题,求思路求指点

时间:2011-09-07

来源:互联网

一般的分页技术,我现在都可以实现。我用的是数据库读取的分页技术。

前些天我遇到一个问题。问题是这样的。
我数据库里有一个商品类型表
id number(11) primary key,
name varchar2(40) not null,
parentId number(11) not null

字段如上。

我在页面想实现的功能如下。有两个。
第一个,是把这些所有分类显示在<select>中
我实现的思路是这样的
我写一个方法,根据parentId读取类型列表getProductCategoryById(int parentId);
一级类型的parentId为0,
所以我是这样写的

public void list(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
List<ProductCategory> categories=new ArrayList<ProductCategory>();
List<ProductCategory> firstCategories=pcb.getProductCategoryById(0);
for(int i=0;i<firstCategories.size();i++){
ProductCategory firstCategory=firstCategories.get(i);
//根类
categories.add(firstCategory);
List<ProductCategory> songCategories=
pcb.getProductCategoryById(firstCategory.getId());
if(songCategories!=null){
for(int j=0;j<songCategories.size();j++){
//二级类
categories.add(songCategories.get(j));
}
}
}
request.setAttribute("categories", categories);
request.getRequestDispatcher("manage/category.jsp").forward(request, response);

}


jsp页面是这样处理的

<tr>
<td class="field">所属分类:</td>
<td>
<select name="parentId">
<c:forEach var="category" items="${categories}">
<option value="${category.id }" <c:if test="${parentId==category.id }">selected="selected"</c:if> >
<c:if test="${category.parentId!=0}">└</c:if>${category.name }
</option>
</c:forEach>
</select>

</td>
</tr>
这样是把所有分类正确的显示出来。但是我总觉得这方法不好。。如果有更好方法的大虾,请指导。




好了重点说一下第二个。
第二个是要分布显示出类型,同时还要需要其子类型,
我本来是想按上面的思路的,不过发现实现不了。纠结中

要的效果和其他分页一样,比如我要每页显示10条类型,同时要保证父类型下面对应的是子类型
效果是这样的
11 图书
34 儿童书籍

这个求一个解决方法。

作者: ansn009   发布时间: 2011-09-07

能画个大概的需求效果么。

作者: walkman_22   发布时间: 2011-09-07

OK
假设我每页分五条记录。我就手画吧,

1 图片 修改 删除
21 儿童书籍 修改 删除
32 言情小说 修改 删除
2 生活用品 修改 删除
56 家电冰箱 修改 删除
  首页 上一页 1 2 3 4 5 下一页 末尾
大概是这样子的

作者: ansn009   发布时间: 2011-09-07

。。。上面看不出显示,纠结,我用&&表示空格吧
1 图书 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&修改 删除
21 &&&&&&&&&&儿童书籍 &&&&&&&&&&&&&&&&&&&&&修改 删除
32 &&&&&&&&&&言情小说 &&&&&&&&&&&&&&&&&&&&&修改 删除
2 生活用品 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&修改 删除
56 &&&&&&&&&&家电冰箱 &&&&&&&&&&&&&&&&&&&&&修改 删除

情况二
1 图书 &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&修改 删除
21 &&&&&&&&&&儿童书籍 &&&&&&&&&&&&&&&&&&&&&修改 删除
32 &&&&&&&&&&言情小说 &&&&&&&&&&&&&&&&&&&&&修改 删除
23 &&&&&&&&&&&文学名著&&&&&&&&&&&&&&&&&&&&&修改 删除
56 &&&&&&&&&&小品文 &&&&&&&&&&&&&&&&&&&&&&&修改 删除

像这样的完,怎么分页。。我是真心没头猪

作者: ansn009   发布时间: 2011-09-07

主要是分页前排序的问题。分页时要注意带分类排序就好了

作者: youjianbo_han_87   发布时间: 2011-09-07

一般的排序,只要在order by 中设置就成了。这个我明白呢

可是我数据库设置的。怎么才能用Order by实现上面我要的效果,我是没思绪
没办法直接根据某个列或者茉些列直接排序得到呀

作者: ansn009   发布时间: 2011-09-07

sql语句,代码都可以实现的

作者: wangquanzheng   发布时间: 2011-09-07

那这样吧。麻烦楼上的帮我写一下。我给你看一下我的数据库结构
id name parentId
1 家用电器 4
2 图书 0
3 少儿图书 2
4 生活用品 0
5 厨房用品 4
6 化妆品 4

作者: ansn009   发布时间: 2011-09-07

是不是这样的需求,
比如图书类下有科技图书,生活图书,外语图书,

修改图书类,可以增加,删除子类

修改科技图书类,增加/删除图书类下的信息。

我觉得既然是编辑操作,可以把两个分开~~

作者: walkman_22   发布时间: 2011-09-07

感谢8楼哦。你说的增加,删除我的实现了。。

我现在纠结的是怎么让他真实的按照子父级,分页显示在页面上。
他也没办法和其他的一样,直接来个order by 就OK,我是真心木思路

作者: ansn009   发布时间: 2011-09-07

select 两个表中数据 where 大类id=xx ,小类id是多少

作者: EverWHL   发布时间: 2011-09-07

不是两个表,他们是一个表

作者: ansn009   发布时间: 2011-09-07

你的思路会出现如下的问题:
第二页的第一条是子栏目,你该如何展示呢?

我曾经的解决方案是:
刚进入页面时,只显示一级栏目,
通过点击“+”来进行逐级的展开。 不分页。(也无法分页)
展开的同时,要将其它的栏目自动收起。(否则页面太长)
展开功能使用jquery来实现。

不知对你是否有帮助。

作者: wolf863292   发布时间: 2011-09-07

接续12楼,我的方案,中心思想就是,在一次查询中,不要查询不同上级的栏目。
这样的做法,只需要对一级栏目进行分页。

作者: wolf863292   发布时间: 2011-09-07

12楼的,对我思维有点帮助,这也不失为一个好办法。

可是我还是想知道有没有办法解决我说的问题

我说的问题挺好。也正是我想解决的,不过可能我想折腾的也没用文字表达清楚吧。。。。求有大虾指教下

作者: ansn009   发布时间: 2011-09-07

恩。我明白你的思路了。有点收获,
其实吧,我纠结的就是怎么从不同类别的还能真实的去分页

作者: ansn009   发布时间: 2011-09-07

热门下载

更多