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

我有一个很大的查询结果(数百个),每 50 条记录进行分页,并且我希望避免每次用户选择接下来的 50 条记录时都执行相同的查询。

提前致谢。

有帮助吗?

解决方案

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

但就你而言,你谈论的是分页,即新记录。如果您在第一次请求时检索它们,也许您可​​以将它们存储在视图状态中,但这不是一个好主意。如果您有很多记录,您的页面服务速度将会非常慢。

如果您的客户端每次都获取相同的数据,并且当前数据更改在显示数据时并不重要,也许您可​​以将其缓存 ASP.NET的缓存机制.

其他提示

对此的回答是观点。整个显示的网格存储在视图状态中,并且它会在回发中持续存在。

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

Viewstate 是一个神奇的词:P

ASP.NET WebForms完全是关于 ViewState

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top