在页面上点击asp控件但返回NULL

时间:2011-08-28 10:48:26

标签: asp.net controls httpcontext

,HI,

在我的.aspx页面上我有一个id =“dataGrid1”的dataGrid,我需要在app_code中为on class编辑该控件。

这就是我在课堂上所做的事情:

if (HttpContext.Current.Handler is Page)
        {
            Page currentPage = (Page)HttpContext.Current.Handler;
            if (currentPage != null)
            {                  
                Control ctrl = FindControlRecursive(currentPage, "dataGrid1");
            }
        }

然后我有这个递归函数:

public static Control FindControlRecursive(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;
    }

但由于某种原因,它找不到我的控件并返回null。

任何人都可以帮忙???

谢谢

1 个答案:

答案 0 :(得分:0)

由于您已经获得了该页面的实例,请尝试添加将返回Grid的公共方法,然后输入以下代码:

Page currentPage = (Page)HttpContext.Current.Handler;
if (currentPage != null)
{     
    DataGrid myGrid = (currentPage as YourClassName).GetGrid();
    ...
}

此外,您的代码的上下文是什么?什么时候被执行?