2011-10-06 48 views
0

我在一个Asp.net/VB.net网站上工作,来自C#/ WPF背景,对我而言,这些东西对我来说还是一个新的东西。VB.Net/ASP.Net Datatable not stored values

我宣布一个DataTable,像这样:

Public notificationList As DataTable 

然后,我已经使用Page_Load事件处理程序来填充它,并把它绑定到一个控制我的网页,这一切工作正常

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

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

谢谢

+1

您不应该将DataTable存储在Session中,因为每个用户都会拥有自己的实例,如果用户数量不断增加,那么该数据表的规模不会很大。此外,自上次回发以来数据可能已更改,但您仍保留旧数据。因此,为什么不在你需要的每一个回传中加载DataTable? –

+0

这里的数据包含一个用户列表和一个值,用于指示是否应该检查该用户名旁边的复选框。我想在复选框上使用2方式绑定将所有选中的值存储在此DataTable中,然后基本上将DT转换为XML并将其传递给存储过程以更新我的数据库。 – Purplegoldfish

回答

1

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

1

是的,正好。 ASP.NET应用程序是无状态的,这意味着在每次向服务器回传之后,所有数据都将丢失。所以,无论你想要什么,你都可以关心你的数据:会话,视图状态,缓存等。