0

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

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

我习惯于在 ASPContent 区域内设置 ASP 控件,并且在这些区域中,如果用户执行浏览器返回单击,先前输入的数据仍将在页面上供潜在的用户修改。

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

如果必须,我将设置会话变量并禁用浏览器点击,但这是最后的手段。有什么方法可以将缓存数据保存在 asp 更新面板中并在那里进行浏览器后点击?

4

1 回答 1

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

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

于 2013-10-17T15:16:41.530 回答