在3层gridview上的FindControlRecursive块

时间:2017-11-21 13:55:05

标签: c# asp.net gridview

我的问题是我有一个基本的findcontrolrecursive

  Oct-12-2017 7:30 PM Oct-13-2017 7:30 PM Oct-14-2017 7:30 PM

为我的前2层gridview工作的函数,但是在第3层,它在第一种情况下阻塞。

我需要像Project_Details一样使用“GridViewRowEventArgs e”(在例子中)。

主要的gridview名称是GridView, 第一层gridview是Project_Details和 第二层gridview名称是Demande_Ponctuelle

public static Control FindControlRecursive(this Control root, string id)
    {
        if (root.ID == id)
            return root;
        foreach (Control c in root.Controls)
        {
            Control t = FindControlRecursive(c, id);
            if (t != null)
            {
                return t;
            }
        }
        return null;
    }

请帮忙

1 个答案:

答案 0 :(得分:0)

首先获取对子GridView的引用,然后使用FindControl获取其中的Button:

foreach (GridViewRow row in grdSubClaimOuter.Rows) 
{
if (row.RowType == DataControlRowType.DataRow) 
{
    GridView gvChild = (GridView) row.FindControl("Demande_Ponctuelle");
    // Then do the same method for Button control column 
    if (gvChild != null)
    {
        foreach (GridViewRow row in gvChild .Rows) 
        {
            if (row.RowType == DataControlRowType.DataRow) 
            {
                Button btn = (Button ) row.FindControl("buttonID");
                if (btn != null )
                {
                    // do your work
                }
            }
        }
    }
}
}