下面的代码用于获取 gridview 的当前行下拉列表。但我对这段代码感到困惑。请向我解释一下这段代码。我从一篇文章中得到了这个代码。
GridViewRow gvr = (GridViewRow)((DropDownList)sender).Parent.Parent;
GridViewRow
这是一种DropDownList
从事件中获取对 a 的引用的方法SelectedIndexChanged
(例如)。如果DropDownList
a 位于 aTemplateField
中,则此方法有效GridView
。
但更好的方法是使用该NamingContainer
属性。
例如:
protected void dropDownList1_SelectedIndexChanged(Object sender, EventArgs e)
{
GridViewRow gvr = (GridViewRow)((Control)sender).NamingContainer;
}
它更好,因为它不太容易出错。因此,GridViewRow
即使NamingContainer
您将此下拉列表放入 aPanel
中,该Parent
方法仍然是不正确的。
它用于选择包含下拉列表的行。首先它将发送者转换为下拉列表,然后它正在寻找父控件,然后是控制父控件并将其转换为 Gridview 行。