我正在尝试使用此代码将多个所选项目从一个ListBox移动到另一个ListBox
protected void imgbtnMoveRightListBox_Click(object sender, ImageClickEventArgs e)
{
foreach (var item in lstboxSkill.SelectedItem)
{
lstBBoxSkill2.Items.Add(item);
}
}
但显示错误
foreach语句不能对类型的变量进行操作 'System.Web.UI.WebControls.ListItem'因为 'System.Web.UI.WebControls.ListItem'不包含公共 'GetEnumerator'的定义
我不知道为什么会出现这个错误。
请帮我修理
答案 0 :(得分:1)
检查此代码。
protected void imgbtnMoveRightListBox_Click(object senderImageClickEventArge)
{
foreach (ListItem item in lstboxSkill.Items)
{
lstBBoxSkill2.Items.Add(item);
}
}
答案 1 :(得分:0)
lstboxSkill.SelectedItem
是ListItem,既不是数组也不是实现System.Collections.IEnumerable<T>或System.Collections.Generic.IEnumerable<T>接口的对象集合,因此不可能{{1} }} 反对。
我认为这就是你要找的东西:
foreach
答案 2 :(得分:0)
这是因为SelectedItem属性仅返回所选项目列表中索引最低的项目。您应该将代码更改为
protected void imgbtnMoveRightListBox_Click(object sender, EventArgs e)
{
foreach (ListItem Item in lstboxSkill.Items)
{
if (Item.Selected == true)
{
lstBBoxSkill2.Items.Add(Item);
}
}
}
并设置两个列表框SelectionMode =“Multiple”。
希望这会对你有所帮助。不要忘记标记为答案
由于 所罗门S.
答案 3 :(得分:0)
请检查我创建的这个快照和它的工作正常。 代码背后的代码如下:
protected void Page_Load(object sender, EventArgs e)
{
lstboxSkill.Items.Add("ASP.Net");
lstboxSkill.Items.Add("C#");
lstboxSkill.Items.Add("AJAX");
lstboxSkill.Items.Add("JavaScript");
lstboxSkill.Items.Add("HTML");
lstboxSkill.Items.Add("HTML5");
lstboxSkill.Items.Add("JQuery");
}
protected void imgbtnMoveRightListBox_Click(object sender, EventArgs e)
{
foreach (ListItem Item in lstboxSkill.Items)
{
if (Item.Selected == true)
{
lstBBoxSkill2.Items.Add(Item);
}
}
}
答案 4 :(得分:-1)
protected void imgbtnMoveRightListBox_Click(object sender, EventArgs e)
{
lbltxt.Visible = false;
if (ListBox1.SelectedIndex >= 0) // in this we are checking whether a single item is clicked.
{
for (int i = 0; i < ListBox1.Items.Count; i++) // we are looping through the list box items
{
if (ListBox1.Items[i].Selected) // finding the selected items
{
if (!arraylist1.Contains(ListBox1.Items[i]))
{
arraylist1.Add(ListBox1.Items[i]); //if found then adding those items to the array list
}
}
}
for (int i = 0; i < arraylist1.Count; i++)
{
if (!ListBox2.Items.Contains(((ListItem)arraylist1[i])))
{
ListBox2.Items.Add(((ListItem)arraylist1[i])); // we are adding the array elements to the second list box
}
ListBox1.Items.Remove(((ListItem)arraylist1[i]));
}
ListBox2.SelectedIndex = -1;
}
else
{
lbltxt.Visible = true;
lbltxt.Text = "Please select atleast one in Listbox1 to move";
}
}
<强> Source 强>