2013-08-23 64 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行。

相關問題