下面的代码是为了获取gridview的当前行下拉菜单。但我对这段代码感到困惑。请给我解释一下这段代码。我从一篇文章中得到了这段代码。下面的代码是什么意思
GridViewRow gvr = (GridViewRow)((DropDownList)sender).Parent.Parent;
下面的代码是为了获取gridview的当前行下拉菜单。但我对这段代码感到困惑。请给我解释一下这段代码。我从一篇文章中得到了这段代码。下面的代码是什么意思
GridViewRow gvr = (GridViewRow)((DropDownList)sender).Parent.Parent;
这是一种从内它的SelectedIndexChanged
事件(例如)得到一个DropDownList
的参考GridViewRow
。如果DropDownList
位于GridView
的TemplateField
,则此功能起作用。
但更好的方法是使用NamingContainer
属性。
例如:
protected void dropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
GridViewRow gvr = (GridViewRow)((Control)sender).NamingContainer;
}
这是更好,因为它更不容易出错的。因此,即使您将此下拉菜单设置为Panel
,而Parent
方法仍然不正确,GridViewRow
仍然是NamingContainer
。
用于选择包含下拉列表的行。首先它将发件人转换为Dropdownlist,然后查找父级控件,然后控制父级并将其转换为Gridview行。
将发件人父项的父项解析为Dropdownlist,并将其解析为Gridviewrow。 这可能来自事件处理程序,通常使用术语发件人。 – Marco
让我们希望所有演员都能很好地演出,并且没有空引用... –