如何从 C# 中 ASP.NET 中的代码后面检索多选模式下的绑定列表框?

How to retrieve binded listbox in multiple selection mode from code behind in ASP.NET in C#?

我有chosen listbox。我可以从这个列表框向数据库添加项目,但是当我想编辑我的 post 并将这些标签从数据库检索到这个列表框时,我无法从数据库添加选定的项目。

我需要检索用户选择的标签并将其添加到此列表框中,因为用户需要查看他选择的标签。

我的代码如下:

<asp:SqlDataSource ID="sqldsSkillsNeed" runat="server" ConnectionString='<%$ ConnectionStrings:NetProjectsConnStr %>' SelectCommand="SELECT * FROM [tblAutoTags]"></asp:SqlDataSource>
<asp:ListBox ID="lstSkills" data-placeholder="your skills" SelectionMode="Multiple" CssClass="form-control chosen-select chosen-rtl" TabIndex="8" runat="server" DataSourceID="sqldsSkillsNeed" DataTextField="TagTitle" DataValueField="id"></asp:ListBox>

像这样隐藏代码

string str = dt.Rows[0]["skills"].ToString();
string[] values = str.Split(',');

foreach (string value in values)
{
    if (value.Trim() == "")
       continue;
    lstSkills.Items.Add(value);
}

此代码工作正常,但未在该行的列表框中检索所选标签:

lstSkills.Items.Add(value);

只需尝试使用 Listview 的 FindByValue 属性,如下所示...

    foreach (string str in selectedStr)
    {
        if(lstSkills.Items.FindByValue(str) != null) 
        { 
              lstSkills.Items.FindByValue(str).Selected = true; 
        } 
    }

试试这个

    string[] values = str.Split(',');

    lstSkills.Items.AddRange(values);

我的问题已解决,但现在我需要从列表框中删除所选项目但仍保留所选项目? 看这张照片:ListBox Image 在此图像中,您可以看到选定的项目,但这些项目是双重的,我需要从列表中删除选定的项目