【问题标题】:how to store a varibale value after page loading页面加载后如何存储变量值
【发布时间】:2015-04-15 09:13:19
【问题描述】:

在我的应用程序中有多个选项卡的概念。即我有第一页然后“下一个按钮”移动到第二页,然后在第二页 2 按钮(上一个,下一个)。因此,当用户单击上一个按钮时,我需要在第一页填写字段。这可以使用状态管理来实现。除了这个还有什么办法吗?

【问题讨论】:

标签: asp.net


【解决方案1】:

您可以使用会话,例如

在您的第一页:

string str;
Session["someName"] = str;

在您的第二页中,您可以通过调用会话来检索,因为 sessoin 是一个全局变量,

string n_str;
n_str = Session["someName"] as string;

【讨论】:

  • 我可以在会话中存储第一页的文本框值这么多是可以的,但是在再次回到第一页时移动到第二页后,在哪里检索会话值?(在页面中加载我认为,它会抛出错误,因为会话为空)
  • 我想你没有得到我的问题..没问题,我的要求是做多标签。因此我们可以移动到 NEXT 和 PREV 页面。因此我的要求是当我们点击上一个按钮时,应该填写上一页文件(我们在点击下一个按钮之前输入的数据0
  • 哦,所以你的意思是你想在你的会话仍在运行时保留文本框中的数据。这是有关如何使用视图状态的链接,这是您问题的解决方案。 w3schools.com/aspnet/aspnet_viewstate.asp
  • 顺便说一句,会话不会为空,除非您创建了 Session.Remove("someName");或 Session.RemoveAll();
【解决方案2】:

我认为这完全取决于你的项目是如何构建的,所以你有很多选择:

1- 您可以将其构建为具有多个选项卡(作为 HTML Div)的单个页面,并且“下一个”和“上一个”按钮显示和隐藏这些 Div,因此您不需要将数据存储在任何地方作为页面没有改变(只是显示和隐藏)。

2- 将其存储在像“Session”这样的全局变量中 但如果您有一个高流量应用程序,您可能会耗尽内存,或者您需要在数据库会话中使用而不是在内存会话存储中使用默认值。

3- 使用 Web 服务或从代码隐藏到数据库中部分保存数据(在逐步移动时),然后在单击 prev 时再次重新加载。

就我而言,我推荐第一种方法,因为它不会在服务器上增加额外的负载并且不会影响性能。

【讨论】:

  • 根据我的要求,第一个不适用,第二个和第三个适用,但是将值存储在 db 中并再次检索可能会造成很多流量。会话部分我仍然感到困惑,就像返回时一样到第一页,我们需要在页面加载中获取会话值,并且会话包含 null 并且它会引发错误
  • 您可能只需要检查是否为 null 并将其转换为空字符串或您的默认值。会话["name"] != null?Session["name"]:"";
  • 默认值本身在会话中,因此如果它为 null,我如何将其分配给字段?
  • 对不起,会话怎么会有一个默认值,并且可能同时为空。你可以发给我,我们可以一起看看。​​
猜你喜欢
  • 2017-02-05
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 2018-10-23
  • 2013-05-28
  • 2013-01-23
  • 2019-04-10
  • 2021-03-15
相关资源
最近更新 更多