[英]i have a problem with dropdownLists
我有一本看起来像这样的Dictionary<string,string[]>
我也有2个下拉列表。 我希望第二个下拉列表显示数据,具体取决于从第一个下拉列表中选择的项目。
所以我在第二个下拉列表中添加了一个事件。这是算法:
protected void topicDropDownMenu_SelectedIndexChanged1(object sender, EventArgs e)
{
string[] chosenItem;
chosenItem = null;
SubTopicDropDownList.ClearSelection();
chosenItem = topic[topicDropDownMenu.SelectedItem.Value];
foreach (string item in chosenItem)
{
SubTopicDropDownList.Items.Add(item);
}
}
实际发生的情况是,每次我从第一个下拉列表中选择一个项目时,都会在第二个下拉列表中添加一个字符串数组。
但是我希望第二个下拉列表根据第一个下拉列表中选择的内容替换其值,而不是将这些值添加到第二个下拉列表中已放置的内容中
// add this line - it's different from ClearSelection()
SubTopicDropDownList.Items.Clear();
foreach (string item in chosenItem)
{
SubTopicDropDownList.Items.Add(item);
}
重新加载列表之前清除列表中的项目? 请参见ListItemCollection.Clear方法 。
SubTopicDropDownList.ClearSelection()
不会清空列表,它只是取消选择了所选项。 您可以通过在调用SubTopicDropDownList.ClearSelection()
之前和之后查看SelectedIndex
, SelectedItem
或SelectedValue
的值来确认这一点。 您实际要做的是使用SubTopicDropDownList.Items.Clear()
清空/清除整个项目集。
因此正确的代码将是:
protected void topicDropDownMenu_SelectedIndexChanged1(object sender, EventArgs e)
{
string[] chosenItem;
chosenItem = null;
ubTopicDropDownList.Items.Clear();
chosenItem = topic[topicDropDownMenu.SelectedItem.Value];
foreach (string item in chosenItem)
{
SubTopicDropDownList.Items.Add(item);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.