将缓存的浏览器数据保存在ASP更新面板文本框/下拉列表中,以便浏览器单击

时间:2013-10-17 15:07:35

标签: asp.net vb.net updatepanel browser-cache

我是VB.net/asp的新手,我正在一个名为IronSpeed designer的可视化数据库程序中运行一个VB Web应用程序。在这种情况下,我主要使用IronSpeed作为其登录/角色安全功能。

我为此应用设置了基本的两页设置。然后用户登录到AccountEntry.aspx,他们将数据输入到文本框中并选择链接到sql数据库的一些下拉值,然后单击“提交”以移动到Results.aspx。在Results.aspx上,用户可以更改数据,然后生成多种类型的报告(PDF,Excel等)。

我习惯在ASPContent区域内设置ASP控件,在这些区域中,如果用户执行浏览器后退,则单击先前输入的数据仍会在页面上进行用户修改。

然而,在这个Web应用程序中,IronSpeed正在asp更新面板中设置页面和asp控件。它出现在一个asp更新面板中,在浏览器上单击后无法看到缓存值。在这种情况下,如果用户前进到Results.aspx然后单击浏览器以修改AccountEntry.aspx上的值,则对于用户体验仍然存在原始输入值非常重要。

如果我必须设置会话变量并禁用浏览器点击,但这是最后的选择。有没有办法将缓存数据保存在asp更新面板中并将其存储在浏览器后面点击?

1 个答案:

答案 0 :(得分:1)

您可以做的最好的事情是创建一个类,用表单数据填充它 将其存储在浏览器会话中。

Public Class Navigation
  Property Data1 as string
  Property Data2 as string
  Property ComboValue as string
  Property WhateverDesiredValue as string
End Class

将用户数据保存到类中并将其保存在Session中。

 Dim myNavitadionClass as new PreviousNavigation With { .Data1="" 'Assign values }
 Session("PreviousNavigation") = myNavitadionClass 
 'Submit the form.

 Then when you came again to the form you check the page_load event.

 If Not Session("PreviousNavigation") is Nothing Then
          Dim myClass as Navigation = Ctype(Session("PreviousNavigation"),Navigation)
 End If

然后你可以完全按原样填写表格。