我在FloorView中输入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]
最后一个条目值是问题。我似乎无法做到这一点。任何提示都是最受欢迎的。
答案 0 :(得分:0)
如果我理解你的问题,你不能这样做......
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
答案 1 :(得分:0)
首先,如果您不想要它,为什么要添加项目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();