【问题标题】:Data not displayed in jQuery multiselect pluginjQuery多选插件中未显示数据
【发布时间】:2013-08-14 21:55:08
【问题描述】:

我正在尝试使用 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>

【问题讨论】:

  • 新选项有时在 IE 上效果不佳,尝试更改将其附加到 '');
  • 谢谢它现在正在工作.. @Edward

标签: c# javascript jquery html ajax


【解决方案1】:

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

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

您甚至可以改用对象数组,一次提供多个选项。

一切都很简单。

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

【讨论】:

    【解决方案2】:

    问题是因为New Option 有时在 IE 上效果不佳,请尝试更改附加方式:'&lt;option value="' + myItem[i + 1] + '"&gt;' + myItem[i + 1] + '&lt;/option&gt;'

    【讨论】:

      猜你喜欢
      • 2011-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 2019-08-29
      相关资源
      最近更新 更多