ASP.NET - 避免数据库调用以显示网格视图

时间:2009-09-23 14:55:45

标签: asp.net views grid

我们正在研究ASP.NET应用程序中的网格视图。

这里我们希望避免数据库调用将数据集/数据表绑定到网格视图,只要用户点击排序(列排序),分页链接或每当他更新记录时。

请您告诉我处理它的最佳做法吗?

如果您还可以提供参考文档或Web引用(如果需要),那将会很棒。

非常感谢, 问候, 纳尼。

3 个答案:

答案 0 :(得分:2)

你在这里有一些选择,但他们都有自己的陷阱,并且往往更糟而不仅仅是再次访问数据库。一些可能性:

  • DataSource保存在Cache中。有关概述,请参阅Caching Application Data

  • 对于少量可序列化数据,您可以考虑将其保存到Page的{​​{1}}。这样做的缺点是它增加了发送给客户端的HTML的大小,因此您需要通过不再次访问数据库来平衡可能节省的时间。 Scott Mitchell的Understanding ViewState是对此的一个很好的介绍。

  • 为了完整起见 - 这个可怕:您可以将ViewState的{​​{1}}保存在用户的Session中。这会占用你的网络服务器的内存;你可能不应该使用这种技术,除了原型设计(在这种情况下,你可能会再次访问数据库)。

最后,您绝对应该认真对待这些other answers中的建议。

答案 1 :(得分:2)

如果您希望用户在没有频繁数据库调用的情况下拥有广泛的排序,分页和编辑功能,那么最好创建一个胖胖的Windows客户端。对于瘦客户端,Web应用程序通常更好。

可以使用JavaScript完成所有排序和编辑客户端,但那将是一个令人难以置信的坏主意。我想说:让你的服务器和你的数据库做他们擅长的事情,不要过分担心在你的应用程序中尽量减少他们的角色。

答案 2 :(得分:1)

我认为你很难对任何用途进行优化。 GridView排序/更新/页面功能是否需要花费很多(过度)时间才能完成?您可能还需要查看数据库设计。