在 C# 的 asp.net 下拉列表中的 select2 multiple 上设置多个选定值

set multiple selected value on select2 multiple in asp.net dropdownlist from C#

我需要在一本书下添加多个作者。所以我在 asp 下拉列表中使用了 "Select2 Multiple"。我能够插入数据,但在编辑模式下我无法在下拉列表中分配多个选定值。

我在 aspx 页面的下拉列表是

    <asp:DropDownList ID="ddlAuthor" runat="server" multiple="multiple" data-placeholder="Select Author (s)" CssClass="form-control select2"></asp:DropDownList>

在 C# 中,我尝试了以下操作,但它只添加了一个值。我的 C# 代码是

        foreach (DataRow row in dtAuthor.Rows)
        {
           ddlAuthor.Items.FindByValue(row["AUTHOR_ID"].ToString()).Selected = true;
        }

关于如何在 C# 的编辑模式下设置多个选定值有什么建议吗?

在这种情况下您没有使用 select2! 您需要使用select2,并将所有多个数据推送到一个变量中并将其发送到js函数或使用ajax

$(".ddlAuthor").select2('data', youDataHere);

您不能使用 DropDownList 来实现此目的,请使用这样的列表框:

    <asp:ListBox ID="ddlAuthor" runat="server" SelectionMode="Multiple" data-placeholder="Select Author (s)" CssClass="form-control select2"></asp:ListBox>

你后面的代码会起作用。

编辑:

下面是一个代码示例:

        //I bind my ListBox with random data 
        List<string> data = new List<string>() { "Flo", "Auteur", "Patrick","Test" };
        //Databind
        ddlAuthor.DataSource = data;
        ddlAuthor.DataBind();

        //Here is my selected values, i wish that this values are selected
        List<string> selected = new List<string>() { "Flo", "Patrick" };

        //Foreach value in my selected list i select the proper value in my listbox
        foreach (string row in selected)
        {
            ddlAuthor.Items.FindByValue(row).Selected = true;
        }