基于变量动态创建控件

时间:2012-05-09 20:22:08

标签: c# asp.net

首先,我实际上是一名DBA而不是网络开发人员,所以...我写的内容可能看起来很难看。我正在建立一个网站(他们问我是否尝试/耸肩)并且我有168个复选框,在检查时具有相同的操作。但是这些操作虽然相同,但是在不同的控件上执行(与复选框相关)。我可以执行以下操作,而不是具有168条件的switch语句吗?

CheckBox myCB = (CheckBox)(sender);

String mySTR = myCB.ID.ToString();
String myGVstr = “gv” + mySTR.Substring(mySTR.IndexOf(‘cb’) + 1);
String myBTNstr = “btn” + mySTR.Substring(mySTR.IndexOf(‘cb’) + 1);

GridView myGV = myGVstr;
Button myBTN = myBTNstr;

// Do what I need to do with these controls
...

1 个答案:

答案 0 :(得分:1)

这看起来似乎不太合理。也许在加载时你可以将所有控件放入一个大型数组中?将每个控件放入数组需要1个大部分代码,但之后您可以以类似(更可靠)的方式访问它们。

如果你坚持这样做,'FindControl'方法可能会有用。

http://msdn.microsoft.com/en-us/library/486wc64h.aspx

像...一样的东西。

GridView myGV = (GridView)FindControl(myGVstr)

未经测试,但可能有效。