无法在列表框中选择多个项目

时间:2015-07-14 05:11:43

标签: c# asp.net gridview listbox

我在ListBox DropDownList中有GridViewEditItemTemplate。 在rowEditing,我想选择ListBox中的所有项目。 以下是我的代码:

string categories = (e.Row.FindControl("lblCategoryID") as Label).Text;          
ListBox lbx = (ListBox)e.Row.FindControl("lbSelectedCategory");
DropDownList drp = (DropDownList)e.Row.FindControl("drpCat");
List<string> TagIds = categories.Split(',').ToList();
lbx.SelectionMode = ListSelectionMode.Multiple;
foreach (string s in TagIds)
{
     ListItem li = drp.Items.FindByValue(s);
     lbx.Items.Add(li);
}

此处的项目已添加到Listbox

但是当我尝试选择多个项目时,

for (int i = 0; i < lbx.Items.Count; i++)
{
     lbx.Items[i].Selected = true;
}

我收到错误:

  

无法在下拉列表中选择多个项目。

.aspx的:

<EditItemTemplate>
   <asp:Label ID="lblCategoryID" Text='<%# Bind("tag_id") %>' runat="server"></asp:Label>
   <asp:ListBox ID="lbSelectedCategory" Visible="false" Width="150px" runat="server"
         SelectionMode="Multiple" CssClass="chosen-select"></asp:ListBox>
   <asp:DropDownList ID="drpCat" AutoPostBack="true"
         OnSelectedIndexChanged="drpCat_SelectedIndexChanged" CssClass="chosen-select" runat="server">
   </asp:DropDownList>
</EditItemTemplate>

有人可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

不是在下拉列表中查找行并向ListBox添加相同的行,而是尝试从下拉列表中创建一个与ListItem具有相同值的新ListItem,然后添加它。