Gridview中Parent和NamingContainer有什么区别

时间:2013-05-23 08:18:00

标签: asp.net gridview

这两个陈述有什么区别?特别是,我对哪一个更优化感兴趣。

GridViewRow currentItem = (GridViewRow)drp_Vendor.Parent;

GridViewRow currentItem = (GridViewRow)drp_Vendor.NamingContainer;

1 个答案:

答案 0 :(得分:13)

基本区别在于NamingContainer将向上导航控制树,直到找到作为命名容器的祖先(实现INamingContainer接口,而Parent将返回直接父级在控制树中。

在您的情况下,GridViewRow似乎既是drp_Vendor控件的直接父级和命名容器。

但是,例如,如果您将drp_Vendor控件放在Panel中的TemplateField内,那么Parent将是Panel,而NamingContainer将是GridViewRow。

至于哪个是“最优化的”,Parent属性会稍微快一些,但差别不大。