同意上面的Anthony的评论。
但是,由于所选的ListItems仍然会引用原始DropDownList的相同对象,所以在更改字段/属性时会出现意想不到的副作用。
例如:
drpTypes.Items.Add(new ListItem("Tipos de Acções", "1"));
drpTypes.Items.Add(new ListItem("Tipos de Combustível", "2"));
drpTypes.Items.Add(new ListItem("Tipos de Condutor", "3"));
drpTypesCreateEdit.Items.AddRange(drpTypes.Items);
drpTypes.SelectedValue = "2";
drpTypesCreateEdit.SelectedValue = "3";
两个drpTypes和drpTypesCreateEdit现在有“3”的SelectedValue,而这显然不是上面的代码的意图。
实例化新的ListItem对象,而不是只选择原有的对象将解决这个问题:
drpTypesCreateEdit.Items.AddRange(drpTypes.Items.Cast<ListItem>().Select(x => New ListItem(x.Text, x.SelectedValue)).ToArray();
我没有在项目中的该方法:( – LuRsT 2010-04-19 13:56:32
您正在使用什么版本的.NET?如果3.5+,请为System.Linq添加using语句。如果2.0,你可以简单地选择遍历第一个列表中的项目,并将它们逐个添加到第二个列表中。 – 2010-04-19 13:59:14
它的工作,非常感谢:D – LuRsT 2010-04-19 14:03:42