写一个关于分页技术的问题,求思路求指点
时间: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
假设我每页分五条记录。我就手画吧,
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实现上面我要的效果,我是没思绪
没办法直接根据某个列或者茉些列直接排序得到呀
作者: ansn009 发布时间: 2011-09-07
作者: 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
我现在纠结的是怎么让他真实的按照子父级,分页显示在页面上。
他也没办法和其他的一样,直接来个order by 就OK,我是真心木思路
作者: ansn009 发布时间: 2011-09-07
作者: EverWHL 发布时间: 2011-09-07
作者: ansn009 发布时间: 2011-09-07
第二页的第一条是子栏目,你该如何展示呢?
我曾经的解决方案是:
刚进入页面时,只显示一级栏目,
通过点击“+”来进行逐级的展开。 不分页。(也无法分页)
展开的同时,要将其它的栏目自动收起。(否则页面太长)
展开功能使用jquery来实现。
不知对你是否有帮助。
作者: wolf863292 发布时间: 2011-09-07
这样的做法,只需要对一级栏目进行分页。
作者: wolf863292 发布时间: 2011-09-07
可是我还是想知道有没有办法解决我说的问题
我说的问题挺好。也正是我想解决的,不过可能我想折腾的也没用文字表达清楚吧。。。。求有大虾指教下
作者: ansn009 发布时间: 2011-09-07
其实吧,我纠结的就是怎么从不同类别的还能真实的去分页
作者: ansn009 发布时间: 2011-09-07
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28