-1

我是 ASP.NET 的新手。我正在用 Asp.NET 和 C# 设计用户界面,用户可以在其中登录然后启动应用程序。使用此应用程序时,用户必须填写 10 页长的表格。

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

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

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

4

5 回答 5

2

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

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

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

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

此外,如果您使用的是选项卡系统,请考虑使用 AJAX 选项卡,这样即使在不同选项卡之间切换时数据也将保留在表单上。

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

于 2011-04-27T18:29:01.180 回答
0

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

我已经使用 JQuery 完成了这项工作。我实际上有 150 个字段需要捕获(它们都是必需的)。我对不同选项卡上的数据进行分组,然后使用按钮(“<上一个”、“下一个>”)来激活不同的选项卡。

完成后,显示“保存”按钮。

于 2011-04-27T18:43:20.647 回答
0

这不是您要查找的内容,但如果您的问题是您希望在用户导航回之前显示之前填写的页面的所有输入,并且您已经保存了所有这些信息,那么您可以尝试像这样的东西:

HTML

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

然后你需要做的就是datapublic后面的代码中设置。然后获取值,data只需调用您的数据库即可。

确保在 init 调用或任何类型的调用中为data空。public string data = "";这样,如果没有信息,则为空白,如果已保存信息,则将其填写。

您还可以尝试通过以下方式传递所有params数据url

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"];    
}

这种方式不太理想,但如果有大量数据正在传递。

于 2011-04-27T18:51:07.380 回答
0

只要您正在学习新事物...将jquery添加到列表中并利用JQuery Wizard Plug In。它将允许您将“10 页表单”集成到一个单元中,然后可以更轻松地进行细分、路由和管理。您可以利用 AJAX 来保存每个步骤,同时提供内置的导航和验证方法。

于 2011-04-27T18:39:34.220 回答
0

好吧,如果您在数据库中写入数据,我想最好的(快速)解决方法是在表中添加一个名为“已完成”的列来保存这些信息。如果标志“已完成”未设置为 1,则加载数据库信息并填充页面控件。

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

于 2011-04-27T18:33:43.210 回答