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


     做了一个通过字符串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控件。

    我的人生我做主
  • 相关阅读:
    20210123
    20210122
    20210121
    20210120
    2020119
    20210118
    20210117
    20210116
    例2-8
    例2-6
  • 原文地址:https://www.cnblogs.com/BinaryStone/p/3944784.html
Copyright © 2020-2023  润新知