我有一个转发器需要270秒才能渲染,实际上最终会崩溃所有浏览器。检索数据的SQL大约需要10秒。我想删除Eval以查看是否会加快一些速度,但我遇到了正确的语法问题。我怀疑这实际上会提高性能,因为我正在处理150,000条记录。 GridView或其他控件会更快吗?使用LINQ to SQL会提高性能吗?以下是Eval的代码:
<%#Eval("Name")%>
我在尝试:
<%# ((DataRowView)Container.DataItem)["Name"]%>
但上述方法无效。它说DataRowView不能用作表达式
我还要指出,没有涉及分页。
答案 0 :(得分:1)
使用Eval
或Container.DataItem
不会产生任何影响,因为它们是相同的。请看一下这个SO。
如果您的浏览器在显示数据时崩溃,那是因为在浏览器中渲染了过多的html或javascript。请注意,Eval
在服务器端执行,因此它不是浏览器崩溃的根本原因。
我建议使用分页来提高性能并避免崩溃。如果你真的不能使用分页,如何让用户下载csv文件以在Excel中打开甚至是PDF文件?
至于使用Linq to SQL来提高性能,我假设你将它与存储过程或动态sql进行比较?存储过程将始终为您提供最佳性能,但是一旦您的动态sql或linq表达式(或编译的linq)缓存在sql server上,它们与sproc相比就不那么慢了。