網頁中控件查找

有許多人均可能曾經爲在後臺寫代碼時找到不到前臺的控件發愁過,固然曾經的我也是很是的苦惱的,我就經過這篇文章將個人一些經驗告訴給你們。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;

   }

下手試試看看是否是很好用的。感謝一下上面代碼的做者。

若是你還一些更好的方法,也能夠發出來和你們共享。謝謝。

相關文章
相關標籤/搜索