0

下面的代码用于获取 gridview 的当前行下拉列表。但我对这段代码感到困惑。请向我解释一下这段代码。我从一篇文章中得到了这个代码。

GridViewRow gvr = (GridViewRow)((DropDownList)sender).Parent.Parent;
4

2 回答 2

1

GridViewRow这是一种DropDownList从事件中获取对 a 的引用的方法SelectedIndexChanged(例如)。如果DropDownLista 位于 aTemplateField中,则此方法有效GridView

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

例如:

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

它更好,因为它不太容易出错。因此,GridViewRow即使NamingContainer您将此下拉列表放入 aPanel中,该Parent方法仍然是不正确的。

于 2013-08-23T12:05:59.097 回答
0

它用于选择包含下拉列表的行。首先它将发送者转换为下拉列表,然后它正在寻找父控件,然后是控制父控件并将其转换为 Gridview 行。

于 2013-08-23T12:06:34.490 回答