using System.Web.UI.WebControls;
List<Literal> literals = new List<Literal>();
foreach (Literal literal in this.Controls.OfType<Literal>())
{
literals.Add(literal);
}
然后,您可以循环遍历列表并设置它们的值。
foreach (Literal literal in literals)
{
literal.Text = "MyText";
}
public static void FindControlsByTypeRecursive(Control root, Type type, ref List<Control> list)
{
if (root.Controls.Count > 0)
{
foreach (Control ctrl in root.Controls)
{
if (ctrl.GetType() == type) //if this control is the same type as the one specified
list.Add(ctrl); //add the control into the list
if (ctrl.HasControls()) //if this control has any children
FindControlsByTypeRecursive(ctrl, type, ref list); //search children
}
}
}
3条答案
按热度按时间eqzww0vc1#
通过获取Controls集合并按类型筛选它们,可以在页上生成文本控件的列表,如下所示:
然后,您可以循环遍历列表并设置它们的值。
o8x7eapl2#
为了扩展NWard的答案,您还可以编写一个自定义方法,该方法将在父控件中搜索指定类型的所有控件。
使用这种高度可重用的方法,您可以搜索整个页面(将
this
作为页面代码隐藏中的参数传递),也可以搜索特定的容器,如数据绑定控件:)xpszyzbs3#
要在NWard的答案基础上进行构建,您可以使用Linq的Where: