Asp.net 是否有一种更优雅的方式将usercontrols添加到列表中?
我有10个自定义usercontrol,ID为usercontrol1、usercontrol2、usercontrol3……usercontrol10 我想将所有这些用户控件添加到列表“allusercontrol”。我是这样用蛮力做的Asp.net 是否有一种更优雅的方式将usercontrols添加到列表中?,asp.net,optimization,user-controls,Asp.net,Optimization,User Controls,我有10个自定义usercontrol,ID为usercontrol1、usercontrol2、usercontrol3……usercontrol10 我想将所有这些用户控件添加到列表“allusercontrol”。我是这样用蛮力做的 allusercontrol.Add(usercontrol1); allusercontrol.Add(usercontrol2); allusercontrol.Add(usercontrol3); . . . . . 有没有更优雅、更简单的方法来完成这
allusercontrol.Add(usercontrol1);
allusercontrol.Add(usercontrol2);
allusercontrol.Add(usercontrol3);
.
.
.
.
.
有没有更优雅、更简单的方法来完成这项琐碎的任务?您确实看到usercontrols ID是一个系列的一部分“usercontrol”+一个int
请尝试使用此代码
List<UserControl> controls = new List<UserControl>
{
usercontrol1,
usercontrol2,
usercontrol3
};
列表控件=新列表
{
用户控制1,
用户控制2,
用户控制3
};
尝试使用此代码
List<UserControl> controls = new List<UserControl>
{
usercontrol1,
usercontrol2,
usercontrol3
};
列表控件=新列表
{
用户控制1,
用户控制2,
用户控制3
};
我建议不要使用这种方法,因为它容易出错。如果您想重命名它们,如果您忘记了这一点,并添加了其他不应在此列表中的名为ButtonX
的控件,该怎么办
相反,我将在容器控件中收集它们,如面板
。
然后,您可以使用LINQ
查找相关的按钮
:
var myButtons = myPanel.Controls.OfType<Button>();
现在您可以迭代那些按钮
,例如:
var myButtons = myPanel.Controls
.OfType<Button>()
.Where(btn => btn.ID.ToLower().StartsWith("button"));
foreach(Button btn in myButtons)
{
// do something amazing
}
或者,您可以直接调用ToList()
以获取列表(问题的核心):
List allbuttons=myButtons.ToList();
我建议不要使用这种方法,因为它容易出错。如果您想重命名它们,如果您忘记了这一点,并添加了其他不应在此列表中的名为ButtonX
的控件,该怎么办
相反,我将在容器控件中收集它们,如面板
。
然后,您可以使用LINQ
查找相关的按钮
:
var myButtons = myPanel.Controls.OfType<Button>();
现在您可以迭代那些按钮
,例如:
var myButtons = myPanel.Controls
.OfType<Button>()
.Where(btn => btn.ID.ToLower().StartsWith("button"));
foreach(Button btn in myButtons)
{
// do something amazing
}
或者,您可以直接调用ToList()
以获取列表(问题的核心):
List allbuttons=myButtons.ToList();
使用Control.ControlCollection.AddRange-look使用Control.ControlCollection.AddRange-look不要以这种匿名方式命名控件。什么更容易出错:Button1、Button2、Button2
或btnisert、BtnUpdate、BtnDelet
?@TimSchmelter更新了我关于用户控件的问题这些用户控件来自哪里?它们已经在aspx页面上了吗?是的,它们已经在aspx页面上了。不要以这种匿名方式命名控件。什么更容易出错:Button1、Button2、Button2
或btnisert、BtnUpdate、BtnDelet
?@TimSchmelter更新了我关于用户控件的问题这些用户控件来自哪里?它们已经在ASPX页面上了吗?是的,它们已经在ASPX页面中了。仍然有很多代码,考虑一个100个用户控件的场景。好的,试试这个代码YouLook。仍然有很多代码,考虑一个100个用户控件的场景。谢谢蒂姆,这是一个很好的解决方案。谢谢蒂姆,这是一个很好的解决方案。