通过foreach循环在ASP.Net中制作下拉列表

时间:2013-02-05 15:20:12

标签: c# asp.net drop-down-menu for-loop

我们可以使用以下语法

在asp.net组件中创建下拉列表
 <asp:DropDownList ID="test" runat="server">
      <asp:ListItem Text="1" Value="1"></asp:ListItem>
 </asp:DropDownList>

如果我们希望我们的组合框包含1到1000,有没有办法用foreach循环填充它,而不是手动添加1000项?

6 个答案:

答案 0 :(得分:4)

是的,您可以通过编程方式添加ListItems

for(int i=1; i<=1000; i++)
{
    ListItem item = new ListItem(i.ToString(), i.ToString());
    test.Items.Add(item);
}

ListItemCollection.Add

您也可以使用此linq查询并将其用作DataSource:

var source = Enumerable.Range(1, 1000)
    .Select(i => new { Text= i.ToString(), Value=i.ToString() });
test.DataSource = source;
test.DataTextField = "Text";
test.DataValueField = "Value";
test.DataBind();

答案 1 :(得分:1)

当然,在您的代码隐藏中:

if (!Page.IsPostBack)
{
    // Populate DropDownList
    for (int i = 1; i < 1001; i++)
    {
        ListItem li = new ListItem(i.ToString(),i.ToString());
        test.Items.Add(li);
    }
}

答案 2 :(得分:1)

如何直接将下拉列表绑定到一组数字?

IEnumerable<int> numbers = Enumerable.Range(1, 1000);
test.DataSource = numbers;
test.DataBind();

答案 3 :(得分:0)

 for( int i=1;i<=100;i++)
 {
    ListItem li=new ListIem(i.ToString(),i.ToString());
    test.Items.add(li);
 }

答案 4 :(得分:0)

这是一些伪代码:

for (int i = 0; i < 1000; i++)
{
    ListItem item = new ListItem();
    item.Text = i.ToString();
    test.Items.Add(item);
}

您必须确切了解如何创建ListItem并使用值填充它。

答案 5 :(得分:0)

非常基本的代码......

if(!Page.IsPostBack)
{
  for (int i = 1; i <= 1000; i++)
  {
    test.Items.Add(new ListItem(i.ToString(), i.ToString()));
  }
}