当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

关于在ECside列表页面点击标题查看明细后不能回到原来所在页的问题

发表于: 2008-04-30   作者:crabdave   来源:转载   浏览次数:
摘要: 问题:在使用ECside分页框架的过程中,我们在EC列表页面点击某一行记录,进入该行记录的详细信息页面,此时我们在返回时却又只能返回到第一页,不能返回原来所在的第二页。其中还有原来我们设置好的每页显示多少行,也变回原来的默认值了,排序方式也变成默认的了。 解决方案:在明细页面点击返回时,需要带上几个参数,并且这些参数要用hidden来存储,ECside框架会用request.getParam
问题:在使用ECside分页框架的过程中,我们在EC列表页面点击某一行记录,进入该行记录的详细信息页面,此时我们在返回时却又只能返回到第一页,不能返回原来所在的第二页。其中还有原来我们设置好的每页显示多少行,也变回原来的默认值了,排序方式也变成默认的了。
解决方案:在明细页面点击返回时,需要带上几个参数,并且这些参数要用hidden来存储,ECside框架会用request.getParameter()方法来取值。
主要参数如下:
<input type="hidden"  name="ec_i"  value="StrategyListTable"/>ec_i存储的是EC列表的tableId,该tableId为StrategyListTable
<input type="hidden"  name="StrategyListTable_crd" value="20"/>StrategyListTable_crd存储的是每页显示多少行,该参数名是由tableId+"_crd"组成
<input type="hidden"  name="StrategyListTable_p" value="1"/>StrategyListTable_p存储的是当前是第几页,该参数名是由tableId+"_p"组成
<input type="hidden"  name="StrategyListTable_s_strategyName" value="asc"/>StrategyListTable_s_strategyName存储的是用户选择的排序字段和方式,该参数名是由tableId+"_s_"+排序字段 组成,它的value值为asc和desc可选,表示排序方式。
参考实现:在我的参与的项目开发过程中,我们的系统采用Struts+Spring+Hibernate,所有的action都继承自BaseAction,我们直接在这个基类中取出这些参数,再将其传入明细页面,在明细页面只用拷贝几行固定的代码,在返回提交表单的时候,顺便提交一下这些参数就OK了。
BaseAction中的代码:
String ec_i="";
ec_i=req.getParameter("ec_i");

if(ec_i!=null&&!ec_i.equals("")){//存在EC显示属性
String cp=req.getParameter(ec_i+"_p");//取出当前第几页
String crd=req.getParameter(ec_i+"_crd");//取出每页多少行
String sort=req.getParameter("sort");//取出排序方式
String sortProp=req.getParameter("sortProp");//取出排序字段
//判断前台是否有排序信息,如果前台没有排序,则这两个属性都是null
if(sort!=null&&!sort.equals("")&&sortProp!=null&&!sortProp.equals("")){
log.info("原页面取到的排序属性为:"+sortProp+"方式为:"+sort);
req.setAttribute("ECSort", sort);
req.setAttribute("ECSortProp",sortProp);
}
log.info("原页面提交的列表名称为:"+ec_i+" 当前是第 "+cp+" 页,每页显示 "+crd+" 行");
req.setAttribute("ECI", ec_i);
req.setAttribute("ECTable_p", cp);
req.setAttribute("ECTable_crd", crd);
}
明细页面的固定代码:
<input type="hidden"  name="ec_i"  value="<c:out value='${ECI}'/>"/>
<input type="hidden"  name="${ECI}_crd" value="<c:out value='${ECTable_crd}'/>"/>
<input type="hidden"  name="${ECI}_p" value="<c:out value='${ECTable_p}'/>"/>
<input type="hidden"  name="<c:out value='${ECSortProp}'/>" value="<c:out value='${ECSort}'/>"/>
<input type="hidden"  name="sort" value="<c:out value='${ECSort}'/>"/>
<input type="hidden"  name="sortProp" value="<c:out value='${ECSortProp}'/>"/>

备注:在项目开发过程中,会有这种情况:从第一个EC列表中点击某行记录进入明细页面,而在这个明细页面中,还有EC列表,在这种情况下,以上这些参数就会重复出现,但ECside框架只会取出其中一个,这时候要注意,在明细页面返回上一个EC列表的时候,要提交上一个EC列表的参数。


关于在ECside列表页面点击标题查看明细后不能回到原来所在页的问题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
最近有用户反馈登录进入CSDN Blog后台系统后出现不能操作或如下图所示,请按照如下操作即可恢复正常
最近新网站刚刚上线 前期工作做的不足 导致大量的404页面,查阅了一些资料发现最偷懒的办法只能是ro
错误地在frameset中显示登录页面,如下图: 为了避免上述情况出现,在登录页面采用如下js代码(参考
转自 http://www.blogjava.net/allen-zhe/archive/2009/03/09/246328.html,很好的一篇介绍ecside的
  昨天,乐晨分享了“如何用织梦程序搭建一个网站”,当我们把一个完整的织梦程序网站搭建好后,
extends:http://www.cnblogs.com/tianzhijiexian/p/4095756.html 前几天看到了有人在android5.0上实
前几天看到了有人在android5.0上实现了如下图一样的效果,我自己就去搜了下。参考了国外一篇文章和
经过悲剧的一周后,我更换了硬盘,原来的硬盘数据全部丢失了,惨痛的教训啊,以后一定要记得备份重
XListView:   简介:Android平台上的列表工具,有下拉刷新与上拉加载更多的功能。开源的,有源码
1. 查找表包含的页信息: 查找表包含的页信息可以使用 dbcc ind 语法: DBCC IND ( [ 'database nam
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号