我们正在研究ASP.NET应用程序中的网格视图。
这里我们希望避免数据库调用将数据集/数据表绑定到网格视图,只要用户点击排序(列排序),分页链接或每当他更新记录时。
请您告诉我处理它的最佳做法吗?
如果您还可以提供参考文档或Web引用(如果需要),那将会很棒。
非常感谢, 问候, 纳尼。
答案 0 :(得分:2)
你在这里有一些选择,但他们都有自己的陷阱,并且往往更糟而不仅仅是再次访问数据库。一些可能性:
将DataSource
保存在Cache
中。有关概述,请参阅Caching Application Data。
对于少量可序列化数据,您可以考虑将其保存到Page
的{{1}}。这样做的缺点是它增加了发送给客户端的HTML的大小,因此您需要通过不再次访问数据库来平衡可能节省的时间。 Scott Mitchell的Understanding ViewState是对此的一个很好的介绍。
为了完整起见 - 这个可怕:您可以将ViewState
的{{1}}保存在用户的Session
中。这会占用你的网络服务器的内存;你可能不应该使用这种技术,除了原型设计(在这种情况下,你可能会再次访问数据库)。
答案 1 :(得分:2)
如果您希望用户在没有频繁数据库调用的情况下拥有广泛的排序,分页和编辑功能,那么最好创建一个胖胖的Windows客户端。对于瘦客户端,Web应用程序通常更好。
你可以使用JavaScript完成所有排序和编辑客户端,但那将是一个令人难以置信的坏主意。我想说:让你的服务器和你的数据库做他们擅长的事情,不要过分担心在你的应用程序中尽量减少他们的角色。
答案 2 :(得分:1)
我认为你很难对任何用途进行优化。 GridView排序/更新/页面功能是否需要花费很多(过度)时间才能完成?您可能还需要查看数据库设计。