2009-11-26 106 views
1

我使用框架2.0,我不明白数据网格和数据集如何工作后做回发。 msdn说,如果请求是回发,则不需要再次执行数据绑定。但我的问题是:数据网格如何再次显示记录是否没有数据绑定?我认为,asp.net保存在缓存中的查询结果,但我不知道。请告诉我什么是.NET用来完成它的机制。ASP.NET数据集和内存

我有一个大的查询结果(数百),分页每50个记录,我想避免每次用户选择下一个50条记录时做相同的查询。

在此先感谢。

回答

2

ASP.NET将以前的值保存到ViewState中,因此它们在回发之间不会丢失。

但在你的情况下,你正在谈论分页,新的记录。如果您是在第一次请求时检索它们,也许可以将它们存储在视图状态中,但这不是一个好主意。如果你有很多记录,你的页面将会很慢。

如果您的客户端每次都获取相同的数据,并且当前的数据更改在显示数据时不重要,也许可以使用asp.net's caching mechanism进行缓存。

3

这个问题的答案是视图状态。整个显示的网格存储在视图状态,这是持续回发。

这就是网格在初始页面加载时定义并存储在viewstate中。当用户点击链接/按钮回发表单时,视图状态将被解码并可以再次使用。因此,您不需要重新绑定网格。但是,有一些注意事项需要注意。

1

ASP.NET WebForms全是关于ViewState

这个概念基本上就是ASP.NET将信息存储在页面上的一个隐藏的输入元素中,然后使用回传自动检索服务器端,回发将表单(包裹整个网站)发回服务器。