如何在浏览asp.net页面时保持控件状态

时间:2009-04-26 19:49:22

标签: c# asp.net-2.0

当我们使用asp.net页面时,我们可以通过多种方法从一个页面导航到另一个页面。

如果要保留当前用户导航的历史记录,此问题会变得更加复杂。

假设我们有一张表格。用户将通过向一个或多个字段添加值来开始填充它,但在我的情况下,他可以在我们回发当前页面之前创建到另一个页面的导航,并且那些可以使控件放松其值。

如何通过asp.net页面之间的回发来保持控件状态。

我应该使用SessionState还是为每个用户缓存它?

感谢名单

3 个答案:

答案 0 :(得分:0)

您几乎可以使用数据库选择会话状态,Cookie或本地状态维护。我通常通过将所有页面组合到单个.aspx中的单独面板中来解决这个问题。这样我就可以使用对象持久性和viewstate。我只需根据用户的导航选择切换不同面板的.visible属性,而不是从一个页面导航到另一个页面。

RO

答案 1 :(得分:0)

答案在不同的应用程序类型中大多不同。例如,如果您计划您的应用程序将有很多人在会话中存储变得昂贵的操作,但对于小型应用程序,它工作得很好。 在所有情况下,您都可以创建一些将临时输入数据存储到数据库中的机制,这种方法可以在任何地方使用,但它比内存缓存慢。 要提供正确的建议,请详细说明您的申请。

答案 2 :(得分:0)

您可以使用Session变量或ASP.NET Cache对象来存储状态,以便用户可以在离开页面后继续填写表单。但是,如果问题是数据输入是一个漫长的过程,用户可能希望稍后暂停和恢复,请为他们提供将当前进度保存到数据库的选项。如果用户试图离开页面,请提醒他们可能会丢失当前的工作并为他们提供保存选项。