Select 在jqgrid过滤器工具栏中填充选择

Select 在jqgrid过滤器工具栏中填充选择,select,jqgrid,Select,Jqgrid,我试图用数据库中的值填充dropdownlist。我的.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.

我试图用数据库中的值填充dropdownlist。我的.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;
}
我在这段代码中遇到的问题是,函数执行得太早,因此dropdownlist不包含任何内容

我假设的原因是,如果我在返回之前在javascript函数中添加了一个警报,dropdownlist中就会充满这些值,并且一切看起来都正常


有什么建议吗?

与使用JSON的自定义函数获取数据不同,您可能希望尝试使用动态选择字段的内置功能(请参阅文档:)。您所要做的就是指定一个url,在该url中生成select元素的代码

colModel:[
    {name:'colName',
     editable:true,
     edittype:'select',
     formatter:'select',
     editoptions:{dataUrl:'/path/to/generated/html/select'}
]
然后您只需要确保
/path/to/generated/html/select
为select元素返回所有正确的html代码

colModel:[
    {name:'colName',
     editable:true,
     edittype:'select',
     formatter:'select',
     editoptions:{dataUrl:'/path/to/generated/html/select'}
]