【问题标题】:VB.Net / ASP.Net Datatable not storing valuesVB.Net / ASP.Net 数据表不存储值
【发布时间】:2011-10-06 18:58:50
【问题描述】:

我在一个 Asp.net / VB.net 网站上工作,并且来自 C# / WPF 背景,这对我来说还是有点新鲜。

我已经像这样声明了一个 DataTable:

Public notificationList As DataTable  

然后我使用 Page_Load 事件处理程序来填充它并将其绑定到我页面上的控件,一切正常

 notificationList = dbGetNotificationsList(1)
     rptNotify.DataSource = notificationList
     rptNotify.DataBind()

但是,在另一种方法中,我需要能够访问此 DataTable,但每当我这样做时,它总是显示为空。我是否需要将此值存储在会话等其他地方?

谢谢

【问题讨论】:

  • 您不应该将 DataTable 存储在 Session 中,因为每个用户都将拥有自己的实例,如果用户数量增加,这不是很可扩展。此外,自上次回发以来数据可能已更改,但您仍持有旧数据。因此,为什么不在您需要的每个回发上加载 DataTable?
  • 此处的数据包含用户列表和一个值,以指示是否应选中该用户名旁边的复选框。我想在复选框上使用 2 方式绑定将所有选中的值存储在此 DataTable 中,然后基本上将 DT 转换为 XML 并将其传递给存储过程以更新我的数据库。

标签: asp.net vb.net


【解决方案1】:

您可以将数据表放在 Session 或服务器端的持久变量中,以便在页面回发时可以再次访问它。另外,请检查您的视图状态是打开还是关闭,因为这有时会导致问题。

【讨论】:

    【解决方案2】:

    是的,没错。 ASP.NET 应用程序是无状态的,这意味着每次回发到服务器后,所有数据都会丢失。因此,您可以在任何地方关注您的数据:会话、视图状态、缓存等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-08
      • 1970-01-01
      • 1970-01-01
      • 2016-06-22
      • 1970-01-01
      相关资源
      最近更新 更多