【发布时间】:2009-03-10 19:51:32
【问题描述】:
我有一个可以过滤和排序的数千行网格。在每一行上,您都可以单击一个详细信息按钮,这将为您带来一个新页面,其中包含有关该页面的详细信息。因为这是一个按钮,所以您不能中键单击或右键单击并在新选项卡中打开。此外,单击返回时,您会丢失过滤器和搜索结果。
为了解决这个问题,我考虑了以下几点:将按钮切换为链接,过滤和搜索时,使用get而不是post请求。这样,您可以通过右键或中键切换到新页面,如果您确实正常点击链接,则返回将正常工作。
但并未进行此更改。我们被要求在详细信息页面上添加“下一个结果/上一个结果”按钮集,以便您导航。虽然不是一个优雅的解决方案,但它至少可以工作。
我建议将查询字符串参数添加到详细信息页面,这将基于过滤器重新生成搜索查询,并允许您在代码中获取下一个和上一个结果。
一位团队成员对此解决方案提出了异议。他认为重新查询数据库是对服务器资源的浪费。相反,提出了一种解决方案来添加包含结果列表的会话变量。然后你就可以用它来导航了。
我对此提出了质疑,因为您不能在不破坏导航的情况下打开多个标签,并且新结果不会实时附加到列表中。此外,如果您担心优化,会话将是最后使用的东西,因为它会占用内存并阻止服务器复制......除非您将结果存储回数据库中。
什么是最好的解决方案?
【问题讨论】:
标签: asp.net architecture