我正在尝试设置从数组中填充的两个DropDownList
的选定索引或值。
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
ListItem[] jobs;
List<ListItem> data = new List<ListItem> {
new ListItem("Hello", "World"),
new ListItem("new", "item"),
new ListItem("next", "item2"),
new ListItem("four", "four")
};
jobs = (from x in data
select new ListItem(x.Text, x.Value)).ToArray();
// jobs is any array of list items where
// text = value or text != value, but value is unique.
DropDownList1.Items.AddRange(jobs);
DropDownList2.Items.AddRange(jobs);
DropDownList1.SelectedIndex = 1;
DropDownList2.SelectedValue = jobs[3].Value;
}
}
在实际页面上,DropDownList
都选择了“4”。如何设置不同的值?
注意:我知道这里不需要使用linq,但在项目代码中 data 来自SQL DB。
答案 0 :(得分:1)
创建另一个ListItem jobsClone
ListItem[] jobsClone = new ListItem[jobs.Length];
for (int i = 0; i < jobs.Length; i++)
{
jobsClone[i] = new ListItem(jobs[i].Value);
}
然后您可以设置您的SelectedIndex
DropDownList1.Items.AddRange(jobs);
DropDownList2.Items.AddRange(jobsClone);
DropDownList1.SelectedIndex = 1;
DropDownList2.SelectedIndex = 3;
答案 1 :(得分:0)
Items.AddRange(array)
执行数组的浅表副本。 执行深层复制更改
DropDownList1.Items.AddRange(jobs);
到
DropDownList1.DataSource = jobs;
DropdownList1.DataBind();
重复其他列表。