在页面上查找一个asp控件但返回NULL
,嗨,
在我的 .aspx 页面上,我有一个 id =“dataGrid1”的 dataGrid,我需要在 app_code 中的类上编辑该控件。
这就是我在课堂上所做的:
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。
有谁可以帮忙吗???
谢谢
,HI,
On my .aspx page i have a dataGrid with id = "dataGrid1", I need to edit that control for on class in the app_code.
This is what i am doing in my class:
if (HttpContext.Current.Handler is Page)
{
Page currentPage = (Page)HttpContext.Current.Handler;
if (currentPage != null)
{
Control ctrl = FindControlRecursive(currentPage, "dataGrid1");
}
}
Then i have this recursive function:
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;
}
But for some reason it doesnt find my control and returns null.
Can any one help???
Thank you
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
由于您已经获取了页面的实例,请尝试添加将返回网格的公共方法,然后使用这样的代码:
另外,您的代码的上下文是什么?什么时候执行?
Since you're already getting instance of the page, try adding public method that will return the Grid, then have such code:
Also, what is the context of your code? When does it get executed?