C# 显示相同值的C2组合框下拉列表
在我的代码中,我有两个组合框下拉列表,由下面的代码创建。问题是,当DropDownlist的值更改时,另一个值也会更改。你能帮我解决这个问题吗C# 显示相同值的C2组合框下拉列表,c#,asp.net,combobox,drop-down-menu,C#,Asp.net,Combobox,Drop Down Menu,在我的代码中,我有两个组合框下拉列表,由下面的代码创建。问题是,当DropDownlist的值更改时,另一个值也会更改。你能帮我解决这个问题吗 public class Translate { public string CountryName { get; set; } public string CountryCode { get; set; } } IList<Translate> languages = new List<Translate>()
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";
这是因为您将两个下拉列表指向同一个数据源。您需要创建语言的第二个副本以传递给ddlTo.DataSource。这是因为您将两个下拉列表指向同一个数据源。您需要创建语言的第二个副本以传递给ddlTo.DataSource。当您使用IList作为数据源时,您正在隐式同步对列表的访问,包括“选定”项的概念。您应该能够简单地使用:
ddlFrom.Items.Clear();
ddlTo.Items.Clear();
foreach (var language in languages)
{
ddlFrom.Items.Add(language);
ddlTo.Items.Add(language);
}
当您使用IList作为数据源时,您正在隐式同步对列表的访问,包括“选定”项的概念。您应该能够简单地使用:
ddlFrom.Items.Clear();
ddlTo.Items.Clear();
foreach (var language in languages)
{
ddlFrom.Items.Add(language);
ddlTo.Items.Add(language);
}
谢谢通过执行以下操作解决:IList languagesFrom=新列表;语言从.addnewtranslateselect;来自的语言。添加新的翻译英语,英语;来自的语言。添加新的TranslateFrench,fr;来自的语言。添加新的TranslateSpain,es;IList languagesTo=来自的新列表语言;谢谢通过执行以下操作解决:IList languagesFrom=新列表;语言从.addnewtranslateselect;来自的语言。添加新的翻译英语,英语;来自的语言。添加新的TranslateFrench,fr;来自的语言。添加新的TranslateSpain,es;IList languagesTo=来自的新列表语言;