使用标签将 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;
答案 0 :(得分:0)
使用hastable dataItem而不是cell对象
的DataItem(&#34;字段1&#34)。那你就不用担心细胞索引了。
编辑:所以除非你在页面加载时重新绑定网格,否则你将无法使用数据项目。
话虽如此,我无法证实这一主张,但我认为模板字段更适合您的需求,因为认为它可能更加过程密集,您将获得对该额外处理的对象的引用。
基本上,绑定字段解析为表格中的单元格,标签将解析为具有引用的范围。 DOM将会有所不同,您对数据的访问也会有所不同。
因此使用标签会有更多的开销,但您可以更轻松地访问。
我不会说有重要的&#39;性能问题,除非你当然没有分页几百条记录。那么我猜想绑定字段的密集程度会降低,因为你没有生成那么多的html。