有許多人均可能曾經爲在後臺寫代碼時找到不到前臺的控件發愁過,固然曾經的我也是很是的苦惱的,我就經過這篇文章將個人一些經驗告訴給你們。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;
固然它的侷限性也是上面的那個。
可是當咱們使用RadioButton或CheckBox等不能使用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;
}
下手試試看看是否是很好用的。感謝一下上面代碼的做者。
若是你還一些更好的方法,也能夠發出來和你們共享。謝謝。