【发布时间】:2013-05-23 08:18:00
【问题描述】:
这两种说法有什么区别?特别是,我对哪个更优化感兴趣。
GridViewRow currentItem = (GridViewRow)drp_Vendor.Parent;
和
GridViewRow currentItem = (GridViewRow)drp_Vendor.NamingContainer;
【问题讨论】:
这两种说法有什么区别?特别是,我对哪个更优化感兴趣。
GridViewRow currentItem = (GridViewRow)drp_Vendor.Parent;
和
GridViewRow currentItem = (GridViewRow)drp_Vendor.NamingContainer;
【问题讨论】:
基本区别在于NamingContainer 将向上导航控件树,直到找到作为命名容器的祖先(实现INamingContainer 接口,而Parent 将返回控件树中的直接父级。
在您的情况下,GridViewRow 似乎是您的 drp_Vendor 控件的直接父级和命名容器。
但是,例如,如果您将 drp_Vendor 控件放在 Panel 中的 TemplateField 中,那么 Parent 将是 Panel 而 NamingContainer 将是 GridViewRow。
至于哪个是“最优化”,Parent 属性会稍微快一点,但差别不大。
【讨论】: