2016-02-26 87 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

相关问题