asp.net gridview vs写innerhtml

时间:2008-12-08 16:49:26

标签: asp.net optimization

对于我来说,不使用asp.net中的gridview来查询存储过程中的简单表,而是自己在服务器代码中编写html,是否有任何性能优势。我确信我的代码在输出中肯定会更简洁。

4 个答案:

答案 0 :(得分:2)

我打算提出一个替代解决方案。如果您不需要GridView的任何功能,为什么不使用转发器。

转发器使其易于实现,但也允许您完全控制生成的源。没有字符串连接性能的问题。

我发现中继器的性能比GridViews略有改善。

答案 1 :(得分:0)

不,使用GridView没有性能优势。通常,GridView会降低一点性能,因为项目被写入ViewState,并生成了额外的HTML。您从GridView获得的好处包括可以轻松使用或创建的命令事件和参数,DataKey“属性包”,允许您跟踪大型结果集中的关键字段,以及许多其他内容。我将添加这个警告,我已经使用GridViews甚至非常简单的结果集返回,并没有看到任何重大的性能问题。

如果你只是从表查询中做一些输出,并且不担心与结果本身的数据进行太多的交互,那么“滚动你自己的”将提供一个很好的解决方案。

答案 2 :(得分:0)

嗯,当然这取决于你的实施。你几乎可以肯定地构建比股票gridview更快的东西。

问题是,你怎么知道? .Net中字符串连接的默认系统本质上非常慢,因此很容易意外地构建比库存gridview慢得多的东西。你当然可以测试一下,但是开发时间的投入可能会超过服务器性能的提升。

答案 3 :(得分:0)

在使用GridView和使用StringBuilder生成HTML之间存在另外的可能性。我在谈论使用ASP Table类。当我所做的只是吐出数据时,我已经看到了在标准GridView上使用它们的速度优势。作为一个额外的好处,我可以在我的输出中添加一个按钮(或链接按钮),并使用事件处理程序将其连接起来,并且在这方面仍然可以获得GridView的功能。

你这样使用它:

Dim tab As New Table
For Each row In DataTable.Rows
  Dim tabRow as New TableRow
  For Each col In row.Columns
    dim tabCol as New TableColumn
    tabCol .Text = row(col)
    tabRow.Controls.Add(tabCol )
  Next
  tab.Rows.Add(tabRow)
Next 
Page.Controls.Add(tab)