ASP.NET教程:ASP.NET中遍历页面所有的控件
来源:学生作业帮助网 编辑:作业帮 时间:2024/05/11 02:14:10 ASP.NET
在我们的系统的开发过程中,经常遇到这样的问题,页面的控件很多,我们希望通过遍历的方法控制这些控件。举一个简单例子,判断页面所有的TextBox按钮是否为空,或者将全部的TextBox清空等。这样就要想办法去获得这些控件。下面便是代码的实例,相信大家一看就懂。
这个就是用户验证页面所有的RadioButtonList是否进行了选择的代码:
/**//// summary
/// 验证填写信息
/// /summary
private void ValidateField()
{
for(int i=0;iPage.Controls.Count;i++)
{
foreach (System.Web.UI.Control control in Page.Controls[i].Controls)
{
if (control is RadioButtonList)
{
if (String.IsNullOrEmpty((control as RadioButtonList).SelectedValue))
{
Bmc.CLUtility.ShowMessage(this.Page, 一些像没有填写);
return;
}
}
}
}
}
如果你的页面还包含Panel、DataList、GridView等这样的控件容器,你可以使用递归调用【尽管性能不高】:
Code
/**//// summary
/// 验证填写信息
/// /summary
private void ValidateField()
{
for (int i = 0; i Page.Controls.Count; i++)
{
ValidateField(Page.Controls[i].Controls);
}
}
/**//// summary
/// 验证控件集
/// /summary
/// param name=cc/param
private void ValidateField(ControlCollection cc)
{
foreach (System.Web.UI.Control control in cc)
{
if (control is RadioButtonList)
{
if (String.IsNullOrEmpty((control as RadioButtonList).SelectedValue))
{
Bmc.CLUtility.ShowMessage(this.Page, 一些像没有填写);
return;
}
}
if (control is CheckBoxList)
{
if (String.IsNullOrEmpty((control as CheckBoxList).SelectedValue))
{
Bmc.CLUtility.ShowMessage(this.Page, 一些像没有填写);
return;
}
}
if (control.HasControls())
{
ValidateField(control.Controls);
}
}
}
类似的,我们可以清空页面上所有的TextBox
清空所有框Code
/**//// summary
/// 清空所有框
/// /summary
private void ClearAllTextBox()
{
for (int i = 0; i Page.Controls.Count; i++)
{
foreach (System.Web.UI.Control control in Page.Controls[i].Controls)
{
if (control is TextBox)
{
(control as TextBox).Text = ;
}
}
}
}
ASP.NET