我有一个Person类型的数组,其中包含字符串对象:FirstName,LastName,login。
我将此绑定到下拉列表。
现在连同这个数组,我还想再显示一个名为“Desk”的项目。我怎么能这样做?
我目前的代码是:
Person[] traders = GetTraders();
ddl_trader.Items.Clear();
ddl_trader.DataSource = traders;
ddl_trader.DataTextField = "LastName";
ddl_trader.DataValueField = "Login";
ddl_trader.DataBind();
我还希望我添加的一个额外项目是默认选定项目。
答案 0 :(得分:3)
您可以将AppendDataBoundItems
属性设置为true
(默认情况下为false
),手动添加项目,然后执行数据绑定过程以添加其余项目。 AppendDataBoundItems
确定在数据绑定期间是否清除了列表。
ddl_trader.Items.Clear();
ddl_trader.AppendDataBoundItems = true;
ddl_trader.Items.Add("Desk");
ddl_trader.DataTextField = "LastName";
ddl_trader.DataValueField = "Login";
ddl_trader.DataSource = traders;
ddl_trader.DataBind();
如果您需要在绑定列表后添加新项目,则可以执行
ddl_trader.Items.Insert(0, "Desk");
这不需要将AppendDataBoundItems
设置为true
。
答案 1 :(得分:1)
一种方法是将GetTraders()
的结果加载到List<Person>
。然后,您可以在将一个或多个新Person
对象绑定到下拉列表之前将其添加到列表中。
List<Person> traders = new List<Person>(GetTraders());
traders.Add(new Person() { LastName = "Foo", Login = "Bar" });
ddl_trader.DataSource = traders;
您还可以定义一个附加数组并将其连接到结果,而不是创建组合集合。 (注意:这将是作为单个序列处理的两个不同的阵列,但是后备阵列仍然是单独的。)
Person[] traders = GetTraders();
Person[] moreTraders = new Person[] { new Person() { LastName = "Foo", Login = "Bar" } };
ddl_trader.DataSource = traders.Concat(moreTraders);