使用FindControl("id")查找控件 返回值都是Null的问题_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 使用FindControl("id")查找控件 返回值都是Null的问题

使用FindControl("id")查找控件 返回值都是Null的问题

 2014/8/29 16:51:41  命运爱上你  程序员俱乐部  我要评论(0)
  • 摘要:做了一个通过字符串ID查找页面控件并且给页面控件赋值的功能,过程中遇到了this.FindControl("id")返回值都是Null的问题,记录一下解决办法。问题的原因是我所要查找的ID控件的父控件不是this所造成的。所以我写了一个递归方法获取控件:1///<summary>2///获取页面中某个控件3///</summary>4///<paramname="control">父控件容器</param>5///<
  • 标签:使用 查找 问题 控件

 做了一个通过字符串ID查找页面控件并且给页面控件赋值的功能,过程中遇到了this.FindControl("id")返回值都是Null的问题,记录一下解决办法。

 问题的原因是我所要查找的ID控件的父控件不是this所造成的。

所以我写了一个递归方法获取控件:

 1 /// <summary>
 2 /// 获取页面中某个控件
 3 /// </summary>
 4 /// <param name="control">父控件容器</param>
 5 /// <param name="id">控件ID</param>
 6 /// <returns></returns>
 7 public Control GetControl(Control control, string id)
 8         {
 9             Control con = control.FindControl(id);
10             if (con == null)
11             {
12                 if (control.HasControls())
13                 {
14                     foreach (Control c in control.Controls)
15                     {
16                         con = GetControl(c, id);
17                         if (con == null)
18                             continue;
19                         else
20                             break;
21                     }
22                 }
23                 else
24                 {
25                     return null;
26                 }
27             }
28             return con;
29         }

 

使用方法 :TextBox txt = GetControl(this, “textBox1”) as TextBox; //在当前页面中查找ID为“textBox1” 的TextBox控件。

 

发表评论
用户名: 匿名