Making drop down list in ASP.Net by foreach loop

2019-07-17 06:54发布

we can make dropdown list in asp.net component with below syntax

 <asp:DropDownList ID="test" runat="server">
      <asp:ListItem Text="1" Value="1"></asp:ListItem>
 </asp:DropDownList>

if we want our combo box contain 1 to 1000 , is there any way to populate it with foreach loop , rather than manually add 1000 item to it ?

6条回答
Root(大扎)
2楼-- · 2019-07-17 07:20

Here's some pseudocode:

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

You will have to find out exactly how to create the ListItem and populate it with a value.

查看更多
做个烂人
3楼-- · 2019-07-17 07:26

Sure, in your code-behind:

if (!Page.IsPostBack)
{
    // Populate DropDownList
    for (int i = 1; i < 1001; i++)
    {
        ListItem li = new ListItem(i.ToString(),i.ToString());
        test.Items.Add(li);
    }
}
查看更多
Animai°情兽
4楼-- · 2019-07-17 07:37

Very basic code...

if(!Page.IsPostBack)
{
  for (int i = 1; i <= 1000; i++)
  {
    test.Items.Add(new ListItem(i.ToString(), i.ToString()));
  }
}
查看更多
冷血范
5楼-- · 2019-07-17 07:39

How about just binding the dropdown list directly to a collection of numbers?

IEnumerable<int> numbers = Enumerable.Range(1, 1000);
test.DataSource = numbers;
test.DataBind();
查看更多
劳资没心,怎么记你
6楼-- · 2019-07-17 07:41
 for( int i=1;i<=100;i++)
 {
    ListItem li=new ListIem(i.ToString(),i.ToString());
    test.Items.add(li);
 }
查看更多
在下西门庆
7楼-- · 2019-07-17 07:43

Yes, you can add ListItems programmatically:

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

ListItemCollection.Add

You could also use this linq query and use it as 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();
查看更多
登录 后发表回答