做了一個通過字符串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 else20 break;21 }22 }23 else24 {25 return null;26 }27 }28 return con;29 }使用方法 :TextBox txt = GetControl(this, “textBox1”) as TextBox; //在當前頁面中查找ID為“textBox1” 的TextBox控件。
新聞熱點
疑難解答