问题描述
我们公司是采用list/Detail的页面逻辑,即list页面有一个DataGrid,列出了一些项,点击其中一项后,页面跳转到Detail页面查看该项的详细。Detail页面有一个返回按钮,点击后即返回到list页面。list中的数据列表通常是经过筛选的,如xxx大于20的,然后还经过了排序的。现在问题是这样的:用户要求,当从Detail返回到list中时,数据列表中的状态不变。公司认为,这是一个合理的要求,因为数据量实在太大,谁都不想返回list就又得从第一页看起。还要求,刚才看的Detail的项目必须是在list的数据列表的当前页,而不一定是进入前list数据列表的那一页;但如果在Detail中把当前项删除,返回则必须是在进入前list数据列表的那一页。
解决方案
解决方案二:
你可以在从list页转向Detail页时的URL中多增加一个参数,代表着当前list页中DataGrid的页数,当你从Detail页返回list页时,你又把该参数在URL里传回来,然后,在list页后台判断刚才的网址(也就是从哪个页面转到这个list页面的,这个可以取得的,也就是上一个页面的URL,绝对路径,不带参数也行,自己加加减减URL字符串)是不是从Detail页返回,如果是,则取出DataGrid页号参数,重新绑定数据源,并设置当前页号为参数值说真的,如果是我的话,我肯定用弹窗的方式来解决这个问题,也就是在DataGrid中的各项链接中用:<ahref=#onclick="window.open('bookdownload.aspx?class=<%#Eval("BookClass")%>&id=<%#Eval("BookId")%>')"title='<%#Eval("BookName")%>'><%#(Eval("BookName").ToString().Length>12)?Eval("BookName").ToString().Remove(12)+"...":Eval("BookName").ToString()%></a>这代码我也不删除部分了,你自己慢慢分析,哈,这是弹窗的,你控制好参数就行了
解决方案三:
建议用弹出窗口或相似的方式做,因为如果数据量大,你返回后页面要重新加载会非常影响速度,给服务器造成很大压力
解决方案四:
我以前做的时候,通过传参数吧List页的页数查询条件等传到Detail,完了又传回来。
解决方案五:
正好我也同有这个疑惑,收获挺多,呵呵
解决方案六:
引用1楼likevs的回复:
你可以在从list页转向Detail页时的URL中多增加一个参数,代表着当前list页中DataGrid的页数,当你从Detail页返回list页时,你又把该参数在URL里传回来,然后,在list页后台判断刚才的网址(也就是从哪个页面转到这个list页面的,这个可以取得的,也就是上一个页面的URL,绝对路径,不带参数也行,自己加加减减URL字符串)是不是从Detail页返回,如果是,则取出DataGrid页号参数,重新绑定数据源,并设置当前页号为参数值说真的,…
请问这个页数有什么用?我没看懂
解决方案七:
ding