我是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更新面板中并将其存储在浏览器后面点击?
答案 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
然后你可以完全按原样填写表格。