在ASP.NET中从一个页面切换到另一个页面时保存网页上的数据

本文关键字:另一个 保存网页 数据 ASP 一个 NET | 更新日期: 2023-09-27 17:53:11

我是ASP.NET的新手。我正在用Asp设计一个用户界面。NET和c#,用户可以在其中登录并启动应用程序。当使用这个应用程序时,用户必须填写一个长达10页的表单。

所以,我使用了导航菜单,并以这样一种方式设计界面,其中每个页面都是不同的菜单项,它是一个静态菜单。用户在表单的第一页填写详细信息并保存,数据保存在数据库中。

问题是他通过点击菜单选项卡移动到另一个页面;当他使用该页面的菜单选项卡返回到第一页时,所有填写的数据都消失了,他看到的是一个空白页面。我知道这就是它的工作原理,但我希望它以这样一种方式,当他在第二页填写数据时(在第一页填写数据后),在返回到第一页时,他应该能够看到他填写的数据。

我可以使用什么概念?我不确定viewstate在这种情况下是否有用。

在ASP.NET中从一个页面切换到另一个页面时保存网页上的数据

您应该考虑使用Session State变量在整个会话中存储他的信息。如果用户已登录,您应该考虑将他输入的信息存储在数据库中,并使用布尔状态"ApplicationFinished"来检查他是否已完成。否则,我将在每个页面上调用从已经添加的数据库中检索信息,以便他可以在不同的位置或一次填写所有信息。

http://msdn.microsoft.com/en-us/library/ms178581.aspx

Session State对您来说可能太长了,如果是这种情况,请对ViewState进行一些研究。有很多不同的方法来解决这样的问题。这完全取决于哪种技术最适合你的需要。

http://msdn.microsoft.com/en-us/library/ms972976.aspx

另外,如果您正在使用选项卡系统,请考虑使用AJAX选项卡,这样即使在使用不同的选项卡时,数据也会保留在表单上。

http://www.dynamicdrive.com/dynamicindex17/ajaxtabscontent/

好吧,如果你是写数据库上的数据,我想最好的(快速)解决方案是添加一个列名为"completed"的表持有这些信息。如果标志"completed"未设置为1,则加载数据库信息并填充页面控件。

当你在数据库中创建一条新记录时,获取该记录的ID并将其设置为Session。如果用户返回到第一页(上一页),您可以恢复信息ID并加载数据。

只要你在学习新的东西…将jquery添加到列表中,并利用jquery向导插件。它可以让你将"10页表单"整合成一个单元,然后可以更容易地细分、路由和管理。您可以利用AJAX保存每个步骤,同时提供内置的导航和验证方法。

我建议您切换到使用客户端javascript来控制您的选项卡。这样,当您在选项卡之间来回切换时,表单数据将保留在字段中。你可以使用javascript按钮来引导用户从一个标签到另一个标签。

我已经使用JQuery完成了这个。我实际上有150个字段需要被捕获(它们都是必需的)。我把数据分组在不同的标签上,然后有按钮('<上一页','下一步>'),这将激活不同的选项卡。

当他们完成后,然后显示"保存"按钮。

这不是您想要的,但如果您的问题是,您希望在用户导航回到之前填充的页面时显示所有输入,并且您已经保存了所有信息,那么您可以尝试这样做:

<input type="text" id="yourID" name = "yourName" value = "<%=data%>"/>

然后,您需要做的就是在后面的代码中将data设置为public。然后,要获得data的值,只需调用数据库。

确保在初始化调用public string data = "";或其他类型时将data设置为空。这样,如果没有信息,那么它将是空白的,如果有保存的信息,那么它将被填充。

您也可以尝试通过url中的params传递所有数据,如下所示:

c#

Response.Redirect("webpage.aspx?data=" + data + "&data1=" + data1);

或者通过javascript:

window.location = ("webpage.aspx?data=" + data + "&data1=" + data1);

获取请求:

if (Request.Params.AllKeys.Contains("data"))
{
   data = Request.Params["data"];    
}

相关文章: