在Gridview中使用LabelField中的标签会导致性能问题吗?

时间:2012-11-20 21:12:09

标签: performance gridview cells templatefield boundfield

使用标签 Gridview * BoundFields *更改为 TemplateFields 是否存在重大性能问题? (请参阅下面的代码摘录)

由于gridview字段需要更改,我打算实施上述更改,以使代码更易于维护。重新排列字段时,需要更少的代码更改。

使用BoundFields似乎更容易出错,因为必须非常小心地跟踪单元格索引的所有出现。特别是Gridviews有很多字段可以访问所有地方。

感谢任何帮助/建议。

提前致谢。

LABEL:

在页面上:

<asp:TemplateField HeaderText="Field1">
     <ItemTemplate>
         <asp:Label ID="lblField1" runat="server" Text='<%# Eval("Field1")%>' />
     </ItemTemplate>
</asp:TemplateField>

代码:

Label lblField1 = row.FindControl("lblField1") as Label;
if (lblField1 != null) { string field1 = lblField1.Text; }

绑定列:

在页面上:

<asp:BoundField DataField="Field1" HeaderText="Field1" />

代码:

string field1 = row.Cells[2].Text;

1 个答案:

答案 0 :(得分:0)

使用hastable dataItem而不是cell对象

的DataItem(&#34;字段1&#34)。那你就不用担心细胞索引了。

编辑:所以除非你在页面加载时重新绑定网格,否则你将无法使用数据项目。

话虽如此,我无法证实这一主张,但我认为模板字段更适合您的需求,因为认为它可能更加过程密集,您将获得对该额外处理的对象的引用。

基本上,绑定字段解析为表格中的单元格,标签将解析为具有引用的范围。 DOM将会有所不同,您对数据的访问也会有所不同。

因此使用标签会有更多的开销,但您可以更轻松地访问。

我不会说有重要的&#39;性能问题,除非你当然没有分页几百条记录。那么我猜想绑定字段的密集程度会降低,因为你没有生成那么多的html。