我正在遍历页面控件,如此
foreach (Control ctrl in control.Controls)
{
if (ctrl is System.Web.UI.WebControls.TextBox || ctrl is System.Web.UI.WebControls.Label)
{
}
}
我希望能够在foreach中声明一个与'ctrl'类型相同的if语句中的变量,这样我就可以检查控件的属性并以这种方式执行一些操作。我不想复制代码,例如,如果'ctrl'是文本框或标签,因为我将为这两种Web控件类型执行相同的代码。
非常感谢任何帮助我走向正确方向的帮助!
谢谢
答案 0 :(得分:0)
尝试使用ITextControl
界面:
foreach (Control ctrl in control.Controls)
{
ITextControl text = ctrl as ITextControl;
if (text != null)
{
// now you can use the "Text" property in here,
// regardless of the type of the control.
}
}
你也可以在这里使用OfType
扩展方法来清理它:
foreach (ITextControl text in control.Controls.OfType<ITextControl>())
{
// now you can use the "Text" property in here,
// regardless of the type of the control.
}