C# 如何移动到下一页,然后返回上一页并保留其值ASP.net

C# 如何移动到下一页,然后返回上一页并保留其值ASP.net,c#,asp.net,C#,Asp.net,我在一个页面中有两个文本框,在这些文本框后面有两个单独的搜索按钮,搜索按钮重定向到另一个页面,用户搜索结果显示在网格中,可以有多个结果,网格的每一行都包含“select”命令,这样当用户单击相应行的select时,其数据将被选中,页面将重定向到上一页,并且该行的数据将显示在文本框中 到目前为止我已经做到了。这就是我想做的: 由于有两个文本框,两个单独的搜索按钮,我所经历的是当用户为第一个文本框选择第一个数据并搜索第二个文本框,然后在第二次搜索后返回第一页时,第一个文本框变为空,我想要的是它应该包

我在一个页面中有两个文本框,在这些文本框后面有两个单独的搜索按钮,搜索按钮重定向到另一个页面,用户搜索结果显示在网格中,可以有多个结果,网格的每一行都包含“select”命令,这样当用户单击相应行的select时,其数据将被选中,页面将重定向到上一页,并且该行的数据将显示在文本框中

到目前为止我已经做到了。这就是我想做的:

由于有两个文本框,两个单独的搜索按钮,我所经历的是当用户为第一个文本框选择第一个数据并搜索第二个文本框,然后在第二次搜索后返回第一页时,第一个文本框变为空,我想要的是它应该包含用户之前输入的值

文本框应保留该值。如果搜索第1个文本框,则第2个文本框应保留其值,如果搜索第2个文本框,则第1个文本框应保留其值

我正在dg_RowCommand事件中使用response.redirect方法。我认为这个页面是用它的初始值呈现的,这是我不想要的


请告诉我我搜索了这么多但什么也没有找到的解决方案。

如果您使用C代码中的Response.Redirect方法重定向,那么在执行此重定向之前,您可以将项目存储在会话变量中:

Session["Test1"] = test1.Text;

会话由每个用户维护。这些值将在应用程序运行期间一直保留,但需要警告的是,如果出现应用程序超时或用户关闭应用程序(关闭浏览器),这些值将丢失。

您可以将这些值存储在
Cookie
会话
变量中。会话变量是特定于应用程序的,cookie是特定于浏览器的

请尝试此操作,以创建会话变量

Session["key"] = "your value"

饼干

Response.Cookies["key"].Value ="your value"
在另一页上,首先检查它是否不为空

if(Session["key"]!=null)
// use it
cookie也是如此(使用请求对象访问它)


使用会话变量<代码>会话[“YourKey”]=您的值您可以跨页面访问它

更新:
如果我是对的,那么您正在考虑一些向导类型的接口。如果你能从中受益,那就看看这个。它可能会对您有所帮助。

将这些页面合并为一个页面,每个页面(步骤)都会变成一个div或asp:Panel。隐藏/显示div,而不是单击下一个事件(或其他)上的“导航到下一页”。这样,当显示/隐藏div时,所有控件都保持在同一页上并保持所有值。不需要会话或其他方法。

应用程序中存储信息将导致多个用户共享相同的数据。请参见此处以获取道歉,我将自己与
会话
应用程序
项目混淆了。我想到了会话变量,但可能有许多文本框,因此在重定向之前,我必须将每个文本框值存储在会话变量中。我认为存储每个文本框的值是一项繁琐的任务。我们不能有更好的解决方案吗?您可以将这些值存储在数组中,然后将该数组存储在单个会话变量中:)哦,是的,我会试试这个。我想到了会话变量,但可能有很多文本框,所以在重定向之前,我必须将每个文本框值存储在会话变量中。我认为存储每个文本框的值是一项繁琐的任务。我们不能有更好的解决方案吗?我不想要向导式的界面。但我在看它,也许它可以帮助你,不需要否决投票,因为你认为向导在步骤上做得更好。没有。OP没有说明需要多少步骤,因此隐藏div是合理的。我以前用过Wizard,它让人头疼,但没什么好处。这是一个可行且合乎逻辑的答案。我在开始我的项目时就想到了这一点,甚至开始这样做,但我的老板希望我导航到下一个页面,他是合理的,因为搜索内容可以在任何页面上,这是一个非常通用的页面,因此可以在不同页面上处理任何项目。。使用div需要将此编码添加到我制作的每个页面中。。
if (Request.Cookies["key"] != null)
//  use it