2013-08-23 173 views
0

下面的代码是为了获取gridview的当前行下拉菜单。但我对这段代码感到困惑。请给我解释一下这段代码。我从一篇文章中得到了这段代码。下面的代码是什么意思

GridViewRow gvr = (GridViewRow)((DropDownList)sender).Parent.Parent; 
+0

将发件人父项的父项解析为Dropdownlist,并将其解析为Gridviewrow。 这可能来自事件处理程序,通常使用术语发件人。 – Marco

+1

让我们希望所有演员都能很好地演出,并且没有空引用... –

回答

1

这是一种从内它的SelectedIndexChanged事件(例如)得到一个DropDownList的参考GridViewRow。如果DropDownList位于GridViewTemplateField,则此功能起作用。

但更好的方法是使用NamingContainer属性。

例如:

protected void dropDownList1_SelectedIndexChanged(Object sender, EventArgs e) 
{ 
    GridViewRow gvr = (GridViewRow)((Control)sender).NamingContainer; 
} 

这是更好,因为它更不容易出错的。因此,即使您将此下拉菜单设置为Panel,而Parent方法仍然不正确,GridViewRow仍然是NamingContainer

0

用于选择包含下拉列表的行。首先它将发件人转换为Dropdownlist,然后查找父级控件,然后控制父级并将其转换为Gridview行。

相关问题