下面的代碼是爲了獲取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
讓我們希望所有演員都能很好地演出,並且沒有空引用... –