C# for 循环计数到详细信息视图下拉列表
本文关键字:详细信息 视图 下拉列表 for 循环 | 更新日期: 2023-09-27 18:35:18
我正在DetailsView模板字段中的DropDownList中输入楼层号。 楼层数是可变的,根据所选建筑物中的楼层数从先前的 DDL 输入。传递楼层数后,它应遍历数字,直到达到楼层号。 在这种情况下,有15层。我是这样做的:
int i;
int cnt = Convert.ToInt32(tmpBox3.SelectedItem.Text); //15
for (i = 0; i <= cnt; i++)
{
tmpBox3.Items.Insert(i, new ListItem(i.ToString(), i.ToString()));
}
tmpBox3.Items.Remove(new ListItem("0")); //remove zero
tmpBox3.Items.Remove(new ListItem(cnt.ToString())); //remove duplicate 15
tmpBox3.Items.Insert(0, new ListItem("--Select--","0")); //add select
tmpBox3.SelectedIndex = 0; // make select default choice
这是输出和问题。对不起,愚蠢的标签
[option selected="selected" value="0"]--Select--[/option]
[option value="1"]1[/option]
[option value="2"]2[/option]...
[option value="14"]14[/option]
[option value="1"]15[/option]
最后一个条目值是问题所在。 我似乎做不到那个 15。欢迎任何提示。
首先,如果你不想要它,为什么要添加项目 0?让它像
for (i = 1; i <= cnt; i++)
{
string floor = i.ToString();
tmpBox3.Items.Add(new ListItem(floor, floor));
}
其次,我想你的 tmpBox3 在开始时不是空的,所以在你得到 tmpBox3.SelectedItem.Text 后,做一个
tmpBox3.Items.Clear();
如果我理解你的问题,你就不能这样做吗......
int i;
// Substract 1 to eliminate last floor
int cnt = Convert.ToInt32(tmpBox3.SelectedItem.Text) - 1;
tmpBox3.Items.Add(0, new ListItem("--Select--","0")); //add select
// Notice starting at 1 instead of 0
for (i = 1; i <= cnt; i++)
{
tmpBox3.Items.Add(i, new ListItem(i.ToString(), i.ToString()));
}
tmpBox3.SelectedIndex = 0; // make select default choice
或者其他方式...
int i;
int cnt = Convert.ToInt32(tmpBox3.SelectedItem.Text);
tmpBox3.Items.Add(0, new ListItem("--Select--","0")); //add select
// Notice starting at 1 instead of 0 and make "less than" instead of "less than or equal"
for (i = 1; i < cnt; i++)
{
tmpBox3.Items.Add(i, new ListItem(i.ToString(), i.ToString()));
}
tmpBox3.SelectedIndex = 0; // make select default choice