我正在编写一个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'来查看? –