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>
问题是因为New Option
有时在IE上工作不好,请尝试更改将其附加到的方式:'<option value="' + myItem[i + 1] + '">' + myItem[i + 1] + '</option>'
Jquery multiselect插件有一种特殊的添加选项的方法。如果API文档不够清晰,请始终查看源代码:
$('#Portfolios').multiSelect('addOption', { 'value': value, 'text': text })
您甚至可以使用对象数组,同时提供多个选项。
一切都很简单。
正如一些人所建议的那样,不需要任何刷新调用。