请大侠来帮忙解决一个需要

小北+小杨 发布于 2012/07/12 11:35
阅读 86
收藏 0

   java做的项目。。。现在有个需求

显示一个带条件的列表,比如显示员工列表,我点击了页面的搜索按钮,给它一个条件,只显示了在职的员工。现在我点击列表中的一条记录,进入到这条记录的详细信息页面,在这个页面要有上一条和下一条按钮,而且上下记录不能脱离列表给的条件,也就是说上下记录必须也是在职的员工的详细信息。

现在不能把所有记录组成一个list传到详细信息页面,因为老大说数据量太大不能放到集合中,请问还有什么好办法吗?谢谢各位啦

加载中
0
逝水fox
逝水fox
不能存数据的话,就把当前条件保存到session,或者打开详细页面的时候以隐藏控件的形式保存在详细页面上。不过就是要多查几次表了
小北+小杨
小北+小杨
回复 @逝水fox : 兄弟,我是个小菜鸟,能否详细点,谢谢你
逝水fox
逝水fox
回复 @小北+小杨 : 多查一条...最后一条不显示
小北+小杨
小北+小杨
啊,我忘记提了个条件了,列表是有分页的。我单击第一页的一条记录进入详细信息页面,此时我顶多得到第一页的ID,那下一页的怎么办......
逝水fox
逝水fox
回复 @小北+小杨 : 其实你列表循环生成详细按钮的时候三个id都传一下也不是不可以吧preId=23&id=26&nextId=77 生成列表的时候你总能知道前后的嘛
小北+小杨
小北+小杨
可是我光有条件不行呀,我得知道下一条记录的ID才能传到数据库里查询我想要的单条记录呀,而且这个ID得是列表条件里面的数据的ID,不能按顺序加一和减一,也就是说我每一次都得把满足所有条件的数据都查出来再去判断当前是这些数据中的多少条。。。这样貌似有些不合理呀。。。谢谢啦,我还想知道更好的方法,请赐教
0
JustForFly
JustForFly

首先你有一个查询功能,根据条件Condition1 列出员工列表的,那么这个时候,查询中应该做一个排序,比如按员工的ID排序。

那么当你进入某一个员工的信息维护界面后,如果点击“下一条”,你只需要把你的Condition1和当前员工的ID传给后台,然后查询详细信息时,只需要去查当前员工ID的后一条数据的详细信息返回页面就可以。

前一条同理。

以上是个人的想法。

JustForFly
JustForFly
以上SQL只是我模拟写的,你应该可以理解。这样做,只会差12条数据,哪里来的几百条?并且返回的数据也只有一下,就是"下一条"数据。
JustForFly
JustForFly
比方说,你现在点击了第二页的第3个条,进入了详细信息页面。如果你接着点击"下一条",后台逻辑如下:select * from (select * from table1 where XXX limit 9,12) t where t.userid > XXX and row_id = 1.
JustForFly
JustForFly
回复 @小北+小杨 : 你没有理解我的意思。
小北+小杨
小北+小杨
回复 @JustForFly : 老大说的是我们经理,不是说鄙视兄弟,别误会哈
小北+小杨
小北+小杨
回复 @JustForFly : 老大一开始就说了,如果有人犯傻,一直从这一条记录点到最后一条......而已总记录有几百条,怎么办?再说了,这样多查几条记录那还不宁愿在分页的时候把所有的数据放到一个集合里面,然后然后传到详细信息页面,再一个个的点击浏览。。。但是他说如果我的数据有上十万条那服务器内存会消耗太大,唉......
下一页
0
Andre.Z
Andre.Z

你弹出个新层显示详细不就完了么,列表你已经取出在页面了,可以把显示的id弄个数组啥的在页面js里面保存下,然后,上下条怎么取id,就不用说了吧。
就算你不弹出层,你弹出页面,那用window.opener不就能取到父级页面的数据了么。
你只要记住,id你已经取出来了,就行了。还去数据库再查?疯了。
一段小小的js就能解决的事情了。

Andre.Z
Andre.Z
回复 @小北+小杨 : 上一页下一页的按钮显示你控制下撒,让TA不能继续查啊。或者说,到头了,就触发分页记录的翻页,翻页完之后,再触发显示,不过这种的话,用层的方式才好做。上下查看的时候,总要定位到是哪条吧,否则那傻帽就真傻了。
小北+小杨
小北+小杨
问题是列表页面是分页的,你的这种方法只能取到第一页的ID,后面的ID咋办。。。
返回顶部
顶部