我正在动态生成许多DropDownList框(在ASP.NET WebForm页面上),允许用户从列表中选择0到24之间的值。 DropDownList具有ListItemCollection Items属性,我希望能够将ListItems复制到此集合,而不必为每个DropDownList使用For循环。
我最初希望使用以下代码创建一个值为0-24的List<ListItems>
:
List<ListItem> listHours = new List<ListItem>();
for (int hr = 0; hr < 25; hr++)
{
listHours.Add(new ListItem(hr.ToString(), hr.ToString()));
}
然后将此列表复制到每个DropDownList。
您似乎无法设置DropDownList的Item属性(即myDropDownList.Items = listHours
),因为出现了“…Items没有设置器”的错误。
我可以编写一个函数来用值1-24填充每个DropDownList,但这将使用for循环并花费更多时间。
是否有一种方法可以将项目列表(例如List<ListItems>
,ListItem的数组等)复制到DropDownList而不需要使用for循环?
答案 0 :(得分:0)
您可以使用AddRange方法:
List<ListItem> listHours = new List<ListItem>();
for (int hr = 0; hr < 25; hr++)
{
listHours.Add(new ListItem(hr.ToString(), hr.ToString()));
}
myDropDownList.Items.AddRange(listHours.ToArray());
答案 1 :(得分:0)
我在想类似Eugene的东西。 这里是1行:
DropDownList1.Items.AddRange(Enumerable.Range(0, 25).Select(x => new ListItem(x.ToString(), x.ToString())).ToArray());