,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。
任何人都可以帮忙???
谢谢
答案 0 :(得分:0)
由于您已经获得了该页面的实例,请尝试添加将返回Grid的公共方法,然后输入以下代码:
Page currentPage = (Page)HttpContext.Current.Handler;
if (currentPage != null)
{
DataGrid myGrid = (currentPage as YourClassName).GetGrid();
...
}
此外,您的代码的上下文是什么?什么时候被执行?