0

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

由于gridview字段的许多需求更改,我计划实施上述更改,以使代码更易于维护。仅重新排列字段时需要较少的代码更改。

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

任何帮助/建议表示赞赏。

提前致谢。

标签:

在页面上:

<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;
4

1 回答 1

0

使用 hastable dataItem 而不是 cells 对象

数据项(“字段 1”)。那么你就不需要担心单元格索引了。

编辑:所以除非你在页面加载时重新绑定你的网格,否则它会出现,你将没有数据项可以使用。

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

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

所以使用标签会有更多的开销,但你会更容易访问。

我不会说存在“重大”性能问题,除非您当然没有分页数百条记录。那么我猜想绑定字段会不那么密集,仅仅是因为你没有生成那么多的 html。

于 2012-11-20T21:15:48.020 回答