C#2 ComboBox DropDownList显示相同的值

时间:2010-03-10 21:24:52

标签: c# asp.net combobox drop-down-menu

在我的代码中,我有2个ComboBox DropDownLists,由下面的代码创建。问题是当DropDownlist的值发生变化时,另一个值也会发生变化。你能帮我解决一下这个问题吗?

public class Translate
{
    public string CountryName { get; set; }
    public string CountryCode { get; set; }
}

IList<Translate> languages = new List<Translate>();
languages.Add(new Translate("Select", ""));
languages.Add(new Translate("English", "en"));
languages.Add(new Translate("French", "fr"));
languages.Add(new Translate("Spain", "es"));

ddlFrom.DataSource = languages;
ddlFrom.DisplayMember = "CountryName";
ddlFrom.ValueMember = "CountryCode";

ddlTo.DataSource = languages;
ddlTo.DisplayMember = "CountryName";
ddlTo.ValueMember = "CountryCode"; 

2 个答案:

答案 0 :(得分:3)

那是因为您将两个下拉列表都指向同一个数据源。您需要制作第二份语言副本以传递给ddlTo.DataSource

答案 1 :(得分:2)

当您使用IList作为数据源时,您隐式地同步对列表的访问,包括“选定”项目的概念。您应该能够简单地使用:

        ddlFrom.Items.Clear();
        ddlTo.Items.Clear();
        foreach (var language in languages)
        {
            ddlFrom.Items.Add(language);
            ddlTo.Items.Add(language);
        }