是否建议在会话中存储Gridview搜索结果?

时间:2010-03-30 18:03:13

标签: gridview asp.net-3.5 session-variables

早上好,

我创建了一个ASP.NET 3.5 webform,允许用户搜索部件列表。两个文本框控件将输入参数提供给存储过程。 gridview返回存储过程的搜索结果。

我已经增强了gridview以包含一个带有Quantity文本框的模板字段,以及gridview页脚中用于将部件(带数量)添加到报价请求的按钮控件。

用户可能会搜索钉子和锤子,选择钉子并输入25个数量并选择1个数量的锤子。必须保留这些项目和数量,以便在报价过程中使用。

问题:鉴于我的情况,您是否建议在会话中存储gridview数量,部件名称等?如果没有,保存这些项目以便在报价过程中使用的最佳方法是什么?

谢谢, SID

2 个答案:

答案 0 :(得分:1)

在显示gridview时,即您正在渲染它,我会在该页面上保留详细信息。当您离开该页面继续订购过程时,我可能会将它们存储在会话中,或者将它们保存在隐藏区域的页面上。

这样做的原因是每次页面请求都会加载会话,因此您不希望在最短的时间内将信息保留在会话中。

如果用户使用浏览器后退和前进按钮进一步使应用程序复杂化,那么预期的结果是什么。考虑一下,他们已经添加了钉子,然后是锤子,然后他们点击后退按钮,在他们添加ammer之前,然后添加一把螺丝刀。什么是订单?钉子,锤子和螺丝刀?还是钉子和螺丝刀?因此,如果可能的话,将数据保留在页面上是好的,因为如果用户退回,订单状态也是如此。但是,您不希望在ViewState扩展太多的页面上添加太多内容,因此请注意并在不需要时将其关闭。

答案 1 :(得分:1)

我发现使用会话没有问题,因为这听起来不像是一个重型应用程序。 您可以做的唯一其他事情是使用数据库并将其存储为数据库中的临时行。当你不需要时,你必须摆脱它。

你唯一能做的就是缓存它。