jQuery多选插件中未显示数据

本文关键字:显示 数据 插件 jQuery | 更新日期: 2023-09-27 18:27:38

我正在尝试使用jQuery多选插件填充下拉列表。当我使用具有硬编码值的简单下拉列表时,它可以正常工作。然而,当我从数据库中获取记录以填充下拉列表时,这些记录不会显示在IE的下拉列表中(在Chrome中运行良好)。

JavaScript

<script>
function Fill(U, F, D, C) {
    $.ajax({ type: "POST",
        url: U + '/' + F,
        data: D,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: false,
        cache: false,
        success: function (r) {
            var i;
            //$('#' + C + '').length = 0;
            var myItem = r.d.split('#');
            $('#' + C + '').empty();
            for (i = 0; i < myItem.length; i = i + 2) {
                $('#' + C).append(new Option('' + myItem[i + 1] + '','' + myItem[i] + ''));
            }
        }
    });
}
 $(document).ready(function () {
                Fill('WebForm1.aspx', 'FillDepartmentDropdown', '{}', 'ddlDepartment');
                $("#ddlDepartment").multiselect({
                    header: "Choose an Department!"
                });
            });
</script>

cs

[WebMethod]
        public static string FillDepartmentDropdown()
        {
            string DataOutput = "";
            DataSet ds;
            Hashtable ObjParameters = new Hashtable();
            BusinessLogicLayer ObjBusiness = new BusinessLogicLayer();
            ds = ObjBusiness.SPDataSet(ObjParameters, "SelectAllDept");
            for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
            {
                DataRow dr = ds.Tables[0].Rows[i];
                DataOutput = DataOutput + "#" + dr["Department"].ToString() + "#" + dr["id"].ToString();
            }
            return DataOutput;
        }

Html

<select id="ddlDepartment" ><option>32</option> <option>3213</option><option>321</option></select>

jQuery多选插件中未显示数据

问题是因为New Option有时在IE上工作不好,请尝试更改将其附加到的方式:'<option value="' + myItem[i + 1] + '">' + myItem[i + 1] + '</option>'

Jquery multiselect插件有一种特殊的添加选项的方法。如果API文档不够清晰,请始终查看源代码

$('#Portfolios').multiSelect('addOption', { 'value': value, 'text': text })

您甚至可以使用对象数组,同时提供多个选项。

一切都很简单。

正如一些人所建议的那样,不需要任何刷新调用。