我們可以下面的語法使通過foreach循環下拉列表在ASP.Net
<asp:DropDownList ID="test" runat="server">
<asp:ListItem Text="1" Value="1"></asp:ListItem>
</asp:DropDownList>
,如果我們希望我們的組合框包含1到1000,有沒有辦法在asp.net組件下拉列表用foreach循環填充它,而不是手動添加1000個項目給它?
我們可以下面的語法使通過foreach循環下拉列表在ASP.Net
<asp:DropDownList ID="test" runat="server">
<asp:ListItem Text="1" Value="1"></asp:ListItem>
</asp:DropDownList>
,如果我們希望我們的組合框包含1到1000,有沒有辦法在asp.net組件下拉列表用foreach循環填充它,而不是手動添加1000個項目給它?
是的,你可以添加ListItems
編程:
for(int i=1; i<=1000; i++)
{
ListItem item = new ListItem(i.ToString(), i.ToString());
test.Items.Add(item);
}
你也可以使用這個LINQ查詢,並把它作爲數據源:
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();
for(int i=1;i<=100;i++)
{
ListItem li=new ListIem(i.ToString(),i.ToString());
test.Items.add(li);
}
肯定的是,你的代碼隱藏:
if (!Page.IsPostBack)
{
// Populate DropDownList
for (int i = 1; i < 1001; i++)
{
ListItem li = new ListItem(i.ToString(),i.ToString());
test.Items.Add(li);
}
}
下面是一些僞代碼:
for (int i = 0; i < 1000; i++)
{
ListItem item = new ListItem();
item.Text = i.ToString();
test.Items.Add(item);
}
你必須找出到底是如何創建的列表項,並用值來填充它。
將下拉列表直接綁定到數字集合上呢?
IEnumerable<int> numbers = Enumerable.Range(1, 1000);
test.DataSource = numbers;
test.DataBind();
這是個神奇的主意! –
非常基本的代碼...
if(!Page.IsPostBack)
{
for (int i = 1; i <= 1000; i++)
{
test.Items.Add(new ListItem(i.ToString(), i.ToString()));
}
}
你必須編輯自己的帖子;-)能力 – freefaller
D'哦!感謝您的推動。 – markp3rry