我正在編寫一個ASPX/C#應用程序。它使用gridviews和模板字段以及控件。爲了訪問動態控件,我使用了findcontrol方法,它一切正常。C#查找控制,鑄造,優雅代碼
但隨着應用程序變得越來越大,我可以看到代碼來查找在不同的功能/按鈕點擊事件中重複使用的控件。我認爲最好創建一個通用函數,該函數根據傳遞給它的參數找到控件。我是一個C#初學者,需要知道這是否可能?或者必須指定控件類型?
這就是我正在使用的(該功能未經過測試,因此可能是一個有缺陷的想法)。
在點擊事件代碼:
Button btn = (Button)sender;
GridViewRow gvr = (GridViewRow)btn.NamingContainer;
TextBox details = gvr.FindControl("detailsText") as TextBox;
//do something with details
TextBox cusID = gvr.FindControl("TextBox2") as TextBox;
// do something with cusID
我想寫
protected Control Returncontrol(GridViewRow gvr, String ControlName)
{
TextBox aCon = gvr.FindControl(ControlName) as TextBox;
// This bit is what I am not sure about. Is possible to find the control without specifying what type of control it is?
return aCon;
}
功能這是我的目標是使用功能:
Returncontrol(gvr, TextBox2).text ="Something";
' 「TextBox2中」'?首先解決它。 –
這是僞代碼,我正在討論作爲一個概念的想法。 – SANM2009
這裏有點不清楚你在這裏試圖做什麼以及你的實際問題是什麼。由於'TextBox'繼承自'Control',因此您應該能夠從'Returncontrol'(應該是'ReturnControl')函數中返回它。然而,更好的選擇可能是使用通用函數'T ReturnControl'來查看? –