网页中控件查找

有许多人均可能曾经为在后台写代码时找到不到前台的控件发愁过,固然曾经的我也是很是的苦恼的,我就经过这篇文章将个人一些经验告诉给你们。ide

下面我就以Grid控件为例子给你们讲解。函数

首先我先讲解一种最简单的方法,通常最简单的方法都是有一些局限性的。spa

 TextBox TextBoxName = (TextBox)e.Item.FindControl("TextBoxName");递归

  TextBox就是控件的控件名,TextBoxName不用说了就是控件的ID了。string

它的局限性就是须要e的属性是GridCommandEventArgs才能够的,譬如:it

protectedvoid RridTest_ItemCommand(object source, GridCommandEventArgse)io

{table

}class

在这种状况下咱们还能够使用一种方法,容器

  GridEditableItem editedItem = e.Item asGridEditableItem;

string WickedID = editedItem["WickedID"].Text;

固然它的局限性也是上面的那个。

可是当咱们使用RadioButtonCheckBox等不能使用GridCommandEventArgs或者不能使用CommandName属性的控件时候在Grid中咱们又能怎样去获取呢,下面我给你们一个方法,这个方法是我在网上寻找的,今天我给你们粘贴过来一块儿看看

RadioButton RadioButtonOther =(RadioButton)FindControlEx(GridTest,"RadioButtonOther");

   ///<summary>

///递归查找找指定ID的控件

///</summary>

///<param name="Parent">父控件控件容器)</param>

///<param name="id">要查找的控件ID</param>

///<returns>回传ä符合ID的控件,若未找到则返回Null</returns>

public System.Web.UI.ControlFindControlEx(System.Web.UI.Control Parent, string id)

   {

      System.Web.UI.Control oCtrl = null;

//先使用FindControl 去查找指定的子控件

       oCtrl =Parent.FindControl(id);

//若是未找到则往下层递归方式去查找°

if (oCtrl == null)

       {

foreach (System.Web.UI.ControloChildCtrl in Parent.Controls)

           {

//以递归方式回调原函数

              oCtrl = FindControlEx(oChildCtrl, id);

//若是找到指定控件则退出循环

if (oCtrl != null)break;

           }

       }

return oCtrl;

   }

下手试试看看是否是很好用的。感谢一下上面代码的做者。

若是你还一些更好的方法,也能够发出来和你们共享。谢谢。

相关文章
相关标签/搜索