Performance 在Gridview的TemplateField中使用标签是否会导致性能问题?

Performance 在Gridview的TemplateField中使用标签是否会导致性能问题?,performance,gridview,cells,templatefield,boundfield,Performance,Gridview,Cells,Templatefield,Boundfield,将Gridview*BoundFields*更改为带有标签的TemplateFields是否存在显著的性能问题?(请参阅下面的代码摘录) 由于gridview字段的大量需求更改,我计划实现上述更改,以使代码更易于维护。重新排列字段时,所需的代码更改更少 使用边界字段似乎更容易出错,因为必须非常小心地跟踪所有出现的单元格索引。尤其是GridView,它有很多字段,可以在任何地方访问 欢迎提供任何帮助/建议 提前谢谢 标签: 第页: BOUNDFIELD: 第页: 使用hastable数据项而不是c

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

由于gridview字段的大量需求更改,我计划实现上述更改,以使代码更易于维护。重新排列字段时,所需的代码更改更少

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

欢迎提供任何帮助/建议

提前谢谢

标签:

第页:

BOUNDFIELD:

第页:


使用hastable数据项而不是cells对象

数据项(“字段1”)。那么您就不必担心单元索引了

编辑:所以它会出现,除非您在页面加载时重新绑定网格,否则您将无法使用数据项

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

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

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


我不会说有“重大”的性能问题,当然,除非您没有分页几百条记录。那么我猜绑定字段的强度会降低,因为您生成的html没有那么多。

您能发布一段工作代码吗?我尝试使用“row.DataItem”(“Field1”),但它说我不能将其用作方法。还尝试了“row.DataItem[“Field1”].ToString()”但它不起作用(获取空值)。编码“DataRowView rowView=(DataRowView)row.DataItem”,然后使用“rowView[“Field1”]。ToString()”也不起作用(无法对对象应用索引)。不确定缺少什么。如果您有有效的GridView行,则dataitem应该存在。我也不确定缺少什么。GridViewRow行是有效对象,但其中的dataitem为null,因此我无法实现您的解决方案。不过,感谢您的提示。如果该行不是数据行,dataitem可能为null。您确定正在查找吗当您试图获取字符串时,仅在datarows中?好的,似乎DataItem仅在RowCreated和RowDataBound事件中可用。是的,RowType是DataRow。
<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;