2016-02-26 90 views
1

內我有三個GridView的ID分別查找的GridView ID: grdvwFilteredNo1,grdvwFilteredNo2,grdvwFilteredNo3從RowCommand事件

每個都有自己的RowCommand事件(各由一個LinkBut​​ton發射了,在行)

grdvwFilteredNo1_RowCommand(對象發件人,GridViewCommandEventArgs E) grdvwFilteredNo2_RowCommand(對象發件人,GridViewCommandEventArgs E) grdvwFilteredNo3_RowCommand(對象發件人,GridViewCommandEventArgs E)

我期待整合通過讓所有三個GridView調用相同的RowCommand事件來實現代碼。 (所有三個事件碼是相同的,除了這條線,其中我被它的ID識別的GridView
下面是來自第一事件的線;
的Int32 intSelectedEEid =(Int32)已grdvwFilteredNo1 .DataKeys [rowIndex位置] .Values [「EmployeeID」];)

我在想我可以使用一個變量而不是gridview ID,但我似乎無法獲取gridview ID。使用這個
GridView gView =((Control)e.CommandSource).Parent.Parent as GridView;
gView.ID返回null。

我在想LinkBtn的父母是行,父母的行是gridview。

如何從RowCommand事件中查找gridview ID?謝謝您的幫助。

回答

0

要從RowCommand事件達到GridView控件,你應該使用這樣的

GridViewRow row = ((e.CommandSource as LinkButton).NamingContainer) as GridViewRow; 
GridView grd = row.NamingContainer as GridView; 

使用父不工作,因爲你的LinkBut​​ton的父母可能不是直接的GridViewRow但它的ItemTemplate,而不是NamingContainer將走祖先的鏈,直到找到一個實現INamingContainer接口的鏈。

+0

謝謝,工作完美。我喜歡那個NamingContainer – NRT8

相關問題