我尝试使用数据库中的值填充下拉列表。我的.js文件中有以下代码:
function getDropdowndata() {
var sHTML;
var filter;
var url = "dropdown.json";
jQuery.getJSON(url, function (dddata) {
if (dddata.rows.length > 0) {
sHTML = "";
for (x = 0; x < dddata.rows.length; x++) {
sHTML += (dddata.rows[x].Type + ":" + dddata.rows[x].Type + ";");
}
filter = sHTML.substring(0, sHTML.length - 1);
}
});
return filter;
}
在我的Jqgrid列表中,我有以下内容:
editoptions: { value: ":All;" + getDropdowndata() }
我在这段代码中遇到的问题是,该函数似乎过早执行,因此下拉列表中不包含任何内容。
我假设的原因是,如果我在返回之前在javascript函数内部发出警报,则下拉列表中会显示值,并且一切似乎都有效。
有什么建议吗?
答案 0 :(得分:0)
您可能希望尝试使用动态选择字段的内置功能,而不是使用JSON使用自定义函数获取数据(请参阅文档:select
edittype)。您所要做的就是指定一个生成select元素代码的URL。
colModel:[
{name:'colName',
editable:true,
edittype:'select',
formatter:'select',
editoptions:{dataUrl:'/path/to/generated/html/select'}
]
然后,您只需要确保/path/to/generated/html/select
为select元素返回所有正确的HTML代码。